1 字节流
FileInputStream
、FileOutputStream
// IO流的读取与写入
private static void demo01() throws IOException {
// 如果是追加内容,则使用第二个参数为true的重载构造函数
FileOutputStream fos = new FileOutputStream("1.txt");
fos.write(97);
fos.write(98);
fos.write(99);
fos.close();
FileInputStream fis = new FileInputStream("1.txt");
// 字节读取返回的是读取的字节十进制值,并且自动向后偏移,如果返回-1则表过读取完毕
int data = fis.read();
System.out.println((char) data);
fis.close();
// 一次读取多个字节
FileInputStream fis2 = new FileInputStream("1.txt");
int length = 0;
byte[] bytes = new byte[1024];
while((length = fis2.read(bytes)) != -1) {
System.out.print(new String(bytes, 0, length));
}
fis2.close();
}
2 字符流
FileReader
、FileWrite
// 字符流的读取与写入
private static void demo02() throws IOException {
// 如果是追加,则第二个参数传true
FileWriter fw = new FileWriter("1.txt");
fw.write(new char[]{'中', '国'});
// 字符的写入是先保存在内存缓存区,需要调用flush方法才会真正的写入到文件
fw.flush();
// 单个字符读取
FileReader fr = new FileReader("1.txt");
// 文件的读取会以字符的单位一个一个读取,如果返回值为-1则表示读取完毕
int c = fr.read();
System.out.println((char) c);
// 一次读取多个字符
FileReader fr2 = new FileReader("1.txt");
int length = 0;
char[] charArray = new char[1024];
while((length = fr2.read(charArray)) != -1) {
System.out.print(new String(charArray, 0, length));
}
fr2.close();
}
3 异常处理
关于换行符号
[……]