IO进阶
一、IO的基本思想
1.IO作就是管道:
端到端的输入和输出的管道。
2.IO操作三部曲:
建立管道
传数据
关闭管道
3.IO的分类
(1)输入流和输出流:站在程序的角度,数据是流向程序还是从程序向外。
(2)字节流和字符流:管道中能够流动的数据类型。
a.字节流:比如二进制、音频、视频、图像等。
b.字符流:文本。
二、IO和装饰者模式的关系
文件端和程序端之间只有4个节点流
在这4个基本管道之上,我们有很多处理流(装饰流/加强流)
4个节点流
1.FileInputStresm:输入字节流,文件端向程序端传输字节型数据。
2.FileOutputStream:输出字节流,程序端向文件端传输字节型数据。
3.FileReader:输入字符流,文件端向程序端传输符节型数据。
4.FileWriter:输出字符流,程序端向文件端传输符节型数据。
装饰流
1.LineNumber
2.Object
3.Pipe
4.Print
5.Buffered
6.Array
7.Date
8.Random
三、IO的应用
1.字符流实现文件的拷贝
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyFile {
public static void main(String[] args) throws IOException {
//读的管道,读入
FileReader fr = new FileReader("d:\\test1.txt");
BufferedReader br = new BufferedReader(fr);//装饰
//写的管道,写出
FileWriter fw = new FileWriter("test.txt");
//BufferedWriter bw = new BufferedWriter(fw);
String str = null;
while((str = br.readLine())!=null) {
System.out.println(str);
fw.write(str+"\n");
}
br.close();
fr.close();
// bw.close();
fw.close();
}
}
四、File类
import java.io.File;
import java.io.IOException;
public class FileTest {
public static void main(String[] args) throws IOException {
File file2 = new File("d:\\temp");//目录对象
File file1 = new File(file2,"test.txt");//文件对象
//判断方法
System.out.println(file1.isFile());
System.out.println(file1.isDirectory());
System.out.println(file2.isFile());
System.out.println(file2.isDirectory());//要存在才是ture
//创建目录文件的方法
file2.