io加强
2016-05-28 14:19
239 查看
io我们只要熟记一下四步就ok了
下面我们通过两个题目来熟悉io操作的四步:package cn.hncu.app;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
public class IoTest {
public static void main(String[] args) {
test1();
test2();
test3();
test4();
test5();
}
/**
* 读取一个文本文件,将文本按照指定的编码表UTF-8写入到另一个文件中
*/
public static void test5() {
try {
FileReader fr = new FileReader("test\\test5In.txt");
FileOutputStream fout =new FileOutputStream("test\\test5Out.txt");
OutputStreamWriter osw = new OutputStreamWriter(fout,"utf-8");
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(osw);
String str = null;
while((str=br.readLine())!=null){
bw.write(str);
bw.newLine();
}
br.close();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 读取一个文本文件,显示到显示器上
*/
public static void test4() {
try {
FileReader fr = new FileReader("test\\test4In.txt");
PrintStream fs = System.out;
OutputStreamWriter osw = new OutputStreamWriter(fs);
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(osw);
String str = null;
while((str=br.readLine())!=null){
bw.write(str);
bw.newLine();
}
br.close();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 读取键盘录入,存储到一个文件中
*/
public static void test3() {
try {
InputStream fr = System.in;
FileWriter fw = new FileWriter("test\\test3Out.txt");
InputStreamReader isr = new InputStreamReader(fr);
BufferedReader br = new BufferedReader(isr);
BufferedWriter bw = new BufferedWriter(fw);
String str = null;
while((str=br.readLine())!=null){
if("over".equals(str)){
break;
}
bw.write(str);
bw.newLine();
}
br.close();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 复制一个图片文件
*/
public static void test2() {
try {
FileInputStream fin = new FileInputStream("test\\GuiQi.jpg");
FileOutputStream fout = new FileOutputStream("test\\DemoCrice.jpg");
BufferedInputStream bis = new BufferedInputStream(fin);
BufferedOutputStream bos = new BufferedOutputStream(fout);
byte[] buf = new byte[10];
int len = 0;
while((len= bis.read(buf))!=-1){
bos.write(buf, 0, len);
}
bos.close();
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 复制一个文本文件
*/
public static void test1() {
try {
FileReader fr = new FileReader("test\\test1In.txt");
FileWriter fw = new FileWriter("test\\test1Out.txt");
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(fw);
String str = null;
while((str=br.readLine())!=null){
bw.write(str);
bw.newLine();
}
br.close();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package cn.hncu.app;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
public class Train1 {
public static void main(String[] args) {
// qieGe();
heBing();
}
/**
* 合并文件
*/
private static void heBing() {
//输入
try {
FileInputStream fin1 =new FileInputStream("test\\train1Out.txt");
FileInputStream fin2 =new FileInputStream("test\\train2Out.txt");
FileInputStream fin3 =new FileInputStream("test\\train3Out.txt");
FileInputStream fin4 =new FileInputStream("test\\train4Out.txt");
FileInputStream fin5 =new FileInputStream("test\\train5Out.txt");
FileInputStream fin6 =new FileInputStream("test\\train6Out.txt");
FileInputStream fin7 =new FileInputStream("test\\train7Out.txt");
FileInputStream fin8 =new FileInputStream("test\\train8Out.txt");
ArrayList<FileInputStream> v = new ArrayList<FileInputStream>();
v.add(fin1);
v.add(fin2);
v.add(fin3);
v.add(fin4);
v.add(fin5);
v.add(fin6);
v.add(fin7);
v.add(fin8);
Enumeration en= Collections.enumeration(v);
SequenceInputStream sis = new SequenceInputStream(en);
//输出
FileOutputStream fout = new FileOutputStream("test\\train1heBingOut.txt");
BufferedOutputStream bos =new BufferedOutputStream(fout);
byte[] buf =new byte[1024];
int len = 0;
while((len=sis.read(buf))!=-1){
bos.write(buf, 0, len);
}
bos.close();
sis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 按指定大小切(如每份最大不超过1KB),
*
*/
private static void qieGe() {
try {
//输入
FileInputStream fin = new FileInputStream("test\\train1In.txt");
BufferedInputStream bis = new BufferedInputStream(fin);
int count=1;
//输出
byte[] buf= new byte[1024];
int len = 0;
while((len=bis.read(buf))!=-1){
FileOutputStream fout = new FileOutputStream("test\\train"+count+"Out.txt");
BufferedOutputStream bos = new BufferedOutputStream(fout);
bos.write(buf,0,len);
count++;
bos.flush();
}
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package cn.hncu.app;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.junit.Test;
public class StringCut {
public static void main(String[] args) {
String str = "ab飝";
try {
byte[] buf = str.getBytes("gbk");
for(byte b:buf){
System.out.print(b+" ");
}
System.out.println();
for(int i=0;i<=buf.length;i++){
System.out.println(i+":"+CutString(str,i));
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 这里初入JUnit :不通过main来测试我们的方法的运行状况。
* @throws IOException
*/
@Test
public void test() throws IOException{
String str ="ab你好飝";
byte[] buf = str.getBytes("gbk");
for(byte b:buf){
System.out.print(b+" ");
}
System.out.println();
}
private static String CutString(String str, int len) throws IOException {
String encoding = System.getProperty("file.encoding");
if("gbk".equalsIgnoreCase(encoding)){
return CutStringGbk(str, len);
}
if("utf-8".equalsIgnoreCase(encoding)){
return CutStringUtf8(str, len);
}
throw new RuntimeException("不支持当前系统的编码");
}
private static String CutStringUtf8(String str, int len)throws IOException {
byte[] buf = str.getBytes("utf-8");
int count=0;
for(int i=len-1;i>=0;i--){
if(buf[i]<0){
count++;
}else{
break;
}
}
return new String(buf,0,len-(count%3));
}
private static String CutStringGbk(String str, int len) throws IOException {
byte[] buf = str.getBytes("gbk");
int count=0;
for(int i=len-1;i>=0;i--){
if(buf[i]<0){
count++;
}else{
break;
}
}
return new String(buf,0,len-(count%2));
}
}
下面我们通过两个题目来熟悉io操作的四步:package cn.hncu.app;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
public class IoTest {
public static void main(String[] args) {
test1();
test2();
test3();
test4();
test5();
}
/**
* 读取一个文本文件,将文本按照指定的编码表UTF-8写入到另一个文件中
*/
public static void test5() {
try {
FileReader fr = new FileReader("test\\test5In.txt");
FileOutputStream fout =new FileOutputStream("test\\test5Out.txt");
OutputStreamWriter osw = new OutputStreamWriter(fout,"utf-8");
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(osw);
String str = null;
while((str=br.readLine())!=null){
bw.write(str);
bw.newLine();
}
br.close();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 读取一个文本文件,显示到显示器上
*/
public static void test4() {
try {
FileReader fr = new FileReader("test\\test4In.txt");
PrintStream fs = System.out;
OutputStreamWriter osw = new OutputStreamWriter(fs);
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(osw);
String str = null;
while((str=br.readLine())!=null){
bw.write(str);
bw.newLine();
}
br.close();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 读取键盘录入,存储到一个文件中
*/
public static void test3() {
try {
InputStream fr = System.in;
FileWriter fw = new FileWriter("test\\test3Out.txt");
InputStreamReader isr = new InputStreamReader(fr);
BufferedReader br = new BufferedReader(isr);
BufferedWriter bw = new BufferedWriter(fw);
String str = null;
while((str=br.readLine())!=null){
if("over".equals(str)){
break;
}
bw.write(str);
bw.newLine();
}
br.close();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 复制一个图片文件
*/
public static void test2() {
try {
FileInputStream fin = new FileInputStream("test\\GuiQi.jpg");
FileOutputStream fout = new FileOutputStream("test\\DemoCrice.jpg");
BufferedInputStream bis = new BufferedInputStream(fin);
BufferedOutputStream bos = new BufferedOutputStream(fout);
byte[] buf = new byte[10];
int len = 0;
while((len= bis.read(buf))!=-1){
bos.write(buf, 0, len);
}
bos.close();
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 复制一个文本文件
*/
public static void test1() {
try {
FileReader fr = new FileReader("test\\test1In.txt");
FileWriter fw = new FileWriter("test\\test1Out.txt");
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(fw);
String str = null;
while((str=br.readLine())!=null){
bw.write(str);
bw.newLine();
}
br.close();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package cn.hncu.app;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
public class Train1 {
public static void main(String[] args) {
// qieGe();
heBing();
}
/**
* 合并文件
*/
private static void heBing() {
//输入
try {
FileInputStream fin1 =new FileInputStream("test\\train1Out.txt");
FileInputStream fin2 =new FileInputStream("test\\train2Out.txt");
FileInputStream fin3 =new FileInputStream("test\\train3Out.txt");
FileInputStream fin4 =new FileInputStream("test\\train4Out.txt");
FileInputStream fin5 =new FileInputStream("test\\train5Out.txt");
FileInputStream fin6 =new FileInputStream("test\\train6Out.txt");
FileInputStream fin7 =new FileInputStream("test\\train7Out.txt");
FileInputStream fin8 =new FileInputStream("test\\train8Out.txt");
ArrayList<FileInputStream> v = new ArrayList<FileInputStream>();
v.add(fin1);
v.add(fin2);
v.add(fin3);
v.add(fin4);
v.add(fin5);
v.add(fin6);
v.add(fin7);
v.add(fin8);
Enumeration en= Collections.enumeration(v);
SequenceInputStream sis = new SequenceInputStream(en);
//输出
FileOutputStream fout = new FileOutputStream("test\\train1heBingOut.txt");
BufferedOutputStream bos =new BufferedOutputStream(fout);
byte[] buf =new byte[1024];
int len = 0;
while((len=sis.read(buf))!=-1){
bos.write(buf, 0, len);
}
bos.close();
sis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 按指定大小切(如每份最大不超过1KB),
*
*/
private static void qieGe() {
try {
//输入
FileInputStream fin = new FileInputStream("test\\train1In.txt");
BufferedInputStream bis = new BufferedInputStream(fin);
int count=1;
//输出
byte[] buf= new byte[1024];
int len = 0;
while((len=bis.read(buf))!=-1){
FileOutputStream fout = new FileOutputStream("test\\train"+count+"Out.txt");
BufferedOutputStream bos = new BufferedOutputStream(fout);
bos.write(buf,0,len);
count++;
bos.flush();
}
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package cn.hncu.app;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.junit.Test;
public class StringCut {
public static void main(String[] args) {
String str = "ab飝";
try {
byte[] buf = str.getBytes("gbk");
for(byte b:buf){
System.out.print(b+" ");
}
System.out.println();
for(int i=0;i<=buf.length;i++){
System.out.println(i+":"+CutString(str,i));
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 这里初入JUnit :不通过main来测试我们的方法的运行状况。
* @throws IOException
*/
@Test
public void test() throws IOException{
String str ="ab你好飝";
byte[] buf = str.getBytes("gbk");
for(byte b:buf){
System.out.print(b+" ");
}
System.out.println();
}
private static String CutString(String str, int len) throws IOException {
String encoding = System.getProperty("file.encoding");
if("gbk".equalsIgnoreCase(encoding)){
return CutStringGbk(str, len);
}
if("utf-8".equalsIgnoreCase(encoding)){
return CutStringUtf8(str, len);
}
throw new RuntimeException("不支持当前系统的编码");
}
private static String CutStringUtf8(String str, int len)throws IOException {
byte[] buf = str.getBytes("utf-8");
int count=0;
for(int i=len-1;i>=0;i--){
if(buf[i]<0){
count++;
}else{
break;
}
}
return new String(buf,0,len-(count%3));
}
private static String CutStringGbk(String str, int len) throws IOException {
byte[] buf = str.getBytes("gbk");
int count=0;
for(int i=len-1;i>=0;i--){
if(buf[i]<0){
count++;
}else{
break;
}
}
return new String(buf,0,len-(count%2));
}
}
相关文章推荐
- 20个代码生成器框架
- 【iOS】build diff: /../Podfile.lock: No such file or directory
- CCScrollView注意事项
- Node.js中文API
- scala中的偏(部分)应用函数和偏函数的区别
- 每天刷个算法题20160523:骑士巡游的递归转非递归解法
- lua调试器与编辑器开源项目luacode(源自decoda)
- 机器人学 —— 轨迹规划(Sampling Method)
- LinkedHashMap的使用
- poj 2771 Guardian of Decency(最大独立集)
- PMP-gossip-02
- 将QT5.6集成至VS2015
- php array_flip() 删除数组重复元素
- 定义分数的一目运算+和-,分别代表分数取正和求反,将“按位取反运算符”~重载为分数的求倒数运算。
- Handler
- 常量的存在和获取
- 关于自定义view的那点事
- 用文言文翻译网络流行语!~张润萌
- 4、内置函数abs、all、any、min、max使用方法
- Oracle空串与null的处理