0%

Java 文件输入输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// File类
String filepath = "D:\\a.txt";
File file = new File(filepath);
String[] filenames = file.list();
File[] files = file.listFiles();

// 普通流
// 字节输入流 OutputStream
// FileOutputStream(File file)
// FileOutputStream(String name)
FileOutputStream fos = new FileOutputStream(file);

// 字节输出流 InputStream
FileInputStream fis = new FileInputStream(file);

// 使用数组读取,加快读取效率
FileInputStream fis = new FileInputStream(file);
int len;
// 定义字节数组,作为装字节数据的容器  
byte[] b = new byte[1024];
// 循环读取
while (( len = fis.read(b))!=-1) {
// 每次读取后,把数组的有效字节部分,变成字符串打印
System.out.println(new String(b, 0, len));//  len 每次读取的有效字节个数
}
// 关闭资源        
fis.close();



// 字符输入流 Reader
FileReader fr = new FileReader(file);
// 字符输出流 Writer
FileWriter fw = new FileWriter(file);

// 缓冲流 高效读写
// 创建字节缓冲输入流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("bis.txt"));
// 创建字节缓冲输出流
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("bos.txt"));

// 创建字符缓冲输入流
BufferedReader br = new BufferedReader(new FileReader("br.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 创建字符缓冲输出流
BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));

// 转换流,默认UTF8编码,可以指定编码
InputStreamReader isr = new InputStreamReader(new FileInputStream("in.txt") , "GBK");
OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream("out.txt") , "GBK");

// 序列化,用一个字节序列可以表示一个对象
// 类必须实现 java.io.Serializable 接口
// 反序列化
ObjectInputStream in = new ObjectInputStream(new FileInputStream("employee.txt"));
//序列化
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("employee.txt"));

// 打印流

PrintStream ps = new PrintStream("ps.txt");