通过下面的案例了解Java的i/o流基本知识,为了方便看清代码的逻辑,所以异常均抛出去
一:完成文本复制,有三种方法,大家可以测测他们的性能。
``
`
`package com.yxy;
import java.io.*;
public class TestCopy {
public static void main(String[] args) throws IOException {
/*需要复制的文本*/
File file=new File("D:"+File.separator+"test.txt");
File file1=new File("D:"+File.separator+"test1.txt");
/*准备输入流*/
FileReader fileReader=new FileReader(file);
BufferedReader bufferedReader=new BufferedReader(fileReader);
FileWriter fileWriter=new FileWriter(file1);
/*准备缓冲流*/
BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);
/*第一种方式:一个一个复制*/
int n = bufferedReader.read();
while (n!=-1){
bufferedWriter.write(n);
n=bufferedReader.read();
}
/*第二种方式:利用缓冲数组*/
char ch[]=new char[5];
int len = bufferedReader.read(ch);
while (len!=-1){
bufferedWriter.write(ch,0,len);
len=bufferedReader.read(ch);
}
/*第三种方式:利用string*/
String s = bufferedReader.readLine();
while (s!=null){
bufferedWriter.write(s);
bufferedWriter.newLine();
s=bufferedReader.readLine();
}
/*别忘记关闭*/
bufferedWriter.close();
bufferedReader.close();
}
}
二:键盘输入保存到文件中
package com.yxy;
import java.io.*;
public class Test01 {
public static void main(String[] args) throws IOException {
InputStream in=System.in;
InputStreamReader inputStreamReader=new InputStreamReader(in);
BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
/*准备输出方向 和文件*/
File file=new File("D:"+File.separator+"test2.txt");
FileWriter fileWriter=new FileWriter(file);
BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);
/*开始读*/
String s = bufferedReader.readLine();
/*输出exist退出*/
while (!"exist".equals(s)){
bufferedWriter.write(s);
bufferedWriter.newLine();
s=bufferedReader.readLine();
}
bufferedWriter.close();
bufferedReader.close();
}
}