Java IO原理
输入input:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中。
输出output:将程序(内存)数据输出到磁盘、光盘等存储设备中。
流的分类:
按操作数据单位不同分为:字节流(8 bit),字符流(16 bit);
按数据流的流向不同分为:输入流、输出流;
按流的角色不同分为:节点流,处理流。
说明点:
- 数据的读入 read():返回读入的一个字符。如果到达文件末尾,返回-1
2.异常的处理:为了保证流资源一定可以执行关闭操作。需要使用try-catch-finally处理。
3读入的文件一定要存在,否则会报FileNotFoundException。
public class testFileReaderFileWriter {
public static void main(String[] args) {
FileReader fr = null;
FileWriter fw = null;
try {
//1.创建File类的对象,指明读入和写出的文件
File srcFile = new File("F:\\WorkSpaceIdea1\\JavaSenior\\day09\\hello1.txt");
File destFile = new File("F:\\WorkSpaceIdea1\\JavaSenior\\day09\\hello2.txt");
//2.创建输入流和输出流的对象
fr = new FileReader(srcFile);
fw = new FileWriter(destFile);
//3.数据的读入和写出操作
char[] cbuf = new char[5];
int len;//记录每次读入到cbuf数组中的数据个数
while((len =fr.read(cbuf))!=-1 ){
//每次写入len个字符
fw.write(cbuf,0,len);
}
} catch (IOException e) {
e.printStackTrace();
}
//4.关闭流资源
try {
if (fw!=null)
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (fr!=null)
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}