IO流
1.流:一连串流动的数据,管道,先入先出的规律…
(1)节点流
- 字符流:最基本的完成读入写出的功能.
FileInputStream | FileOutputStream -->文件操作 - 字符流:对纯文本进行完成读入写出
FileReader FileWriter
(2)功能流
- 缓冲流
提高节点流的功能和读写效率
字节缓冲流–没有新增方法
字符缓冲流–有新增方法,读取一行,插入换行符 - 转换流
字节->字符
InputStreamReader OutputStreamWriter - data流(数据流)
(字节节点流[文件|字节数组]):读写保留基本数据类型+字符串
DataInputStream DataOutputStream 新增方法:readXxx() writeXxx() - 对象流
(字节节点流[文件|字节数组]):读写对象类型信息
ObjectInputStream ObjectOutputStream 新增方法:readXxx() writeXxx()
2.以下是字符流的copy文件的例子:
package com.sht.testone1;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
public class CopyFileone {
public static void main(String[] args) {
BufferedReader reader=null;
BufferedWriter wr=null;
try {
reader=new BufferedReader(new FileReader("D:/haha.txt"));
wr=new BufferedWriter(new FileWriter("E:/xixi.txt"));
//读入
//char []car=new char[1024];
//int len=0;
String arg=null;
while((arg=reader.readLine())!=null){
//System.out.println(new String(car,0,len));
//wr.write(car,0,car.length);
wr.write(arg);
wr.newLine();
}
wr.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
if(wr!=null){ //块导包:shift+alt
wr.close();
}
if(reader!=null){
reader.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}