1.字节缓冲区的使用(提高效率,可以保护磁盘)(主要使用FileInputStream 类和FileOutputStream 类)
FileInputStream in= new FileInputStream("e:\\source.txt");
FileOutputStream out = new FileOutputStream("e:\\target.txt");
byte[] buff =new byte[1024];//作为缓冲区,用于存读入的数据
int i;
String str = null ;
while((i=in.read(buff))!=-1) {
out.write(buff,0,i);//防止将数组空余的写入文件
str = new String(buff,0,i);//将数组转化为String类型,并且去掉数组的空余元素
}
System.out.println(str);
in.close();
out.close();
2.字节缓冲流(可以达到使用缓冲区一样的效果)(主要使用BufferedInputStream 类和BufferedOutputStream 类)在构造方法中接收FileInputStream和FileOutputStream对象
FileInputStream in= new FileInputStream("e:\\source.txt");
FileOutputStream out = new FileOutputStream("e:\\target.txt");
BufferedInputStream bis = new BufferedInputStream(in);
BufferedOutputStream bos = new BufferedOutputStream(out);
int i;
while((i=bis.read())!=-1) {
bos.write(i);
}
bis.close();
bos.close();
3.字符流(与字节缓冲区的使用类似)(主要使用FileReader 类和FileWriter 类)
FileReader in= new FileReader("e:\\source.txt");
FileWriter out = new FileWriter("e:\\target.txt");
int i;
String str = null;
char [] buff = new char[1024];
while((i=in.read(buff))!=-1) {
out.write(buff,0,i);
str = new String(buff,0,i);
}
System.out.println(str);
in.close();
out.close();
4.字符缓冲流(主要使用BufferedReader类和BufferedWriter 类)在构造方法中接收FileReader 和FileWriter 对象
FileWriter out = new FileWriter("e:\\target.txt");
BufferedReader br = new BufferedReader(in);
BufferedWriter bw = new BufferedWriter(out);
while((str=br.readLine())!=null) {//readLine()方法一次性可以读取一行
out.write(str);
System.out.println(str);
}
br.close();
bw.close();
5、字节流与字符流之间的转换 用InputStreamReader OutputStreamWriter类
BufferedInputStream bis = new BufferedInputStream( new FileInputStream("e:\\source.txt"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("e:\\target.txt"));
InputStreamReader isr = new InputStreamReader(bis);
OutputStreamWriter osw = new OutputStreamWriter(bos);
//将转换过后的字符流包装为缓冲流
BufferedReader br = new BufferedReader(isr);
BufferedWriter bw = new BufferedWriter(osw);
while((str=br.readLine())!=null) {//readLine()方法一次性可以读取一行
bw.write(str);
System.out.println(str);
}
br.close();
bw.close();
6.PrintWriter (高效、方便、支持字节流和字符流的使用)
BufferedInputStream bis = new BufferedInputStream( new FileInputStream("e:\\source.txt"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("e:\\target.txt"));
PrintWriter pw = new PrintWriter(bos);
int i = -1;
while((i=bis.read())!=-1) {
pw.print((char)i);
System.out.println(i);
}
bis.close();
pw.close();
Writer BufferedWriter ……过流流 CharArrayWriter……结点流 FilterWriter……过滤流 OutPutStreamWriter ……过滤流 FileWriter……结点流 PipedWriter……结点流 StringWriter……结点流 PrintWriter……过滤流
| Reader BufferedReader ……过滤流 LineNumberReader……过滤流 CharArraReader……结点流 FilterReader……过滤流 PushbackReader……过滤流 InputStreamReader……过滤流 FileReader……结点流 PipedReader……结点流 StringReader……结点流 |
InputStream ByteArrayInputStream ……结点流 FileInputStream ……结点流 FilterInputStream ……过滤流 BufferedInputStream……过滤流 DataInputStream……过滤流 LineNumberInputStream…过滤流 PushbackInputStream……过滤流 ObjectInputStream……过滤流 PipeInputStream……结点流 SequenceInputStream……过滤流 StringBufferInputStream……结点流
| OutputStream ByteArrayOutputStream ……结点流 FileOutputStream ……结点流 FilterOutputStream ……过滤流 BufferedOutputStream…过滤流 DataOutputStream……过滤流 PrintStream……过滤流 ObjectOutputStream……过滤流 PipeOutputStream……结点流
|