FileWriter
import java.io.FileWriter;
import java.io.IOException;
public class Demo {
/*
* FileWriter:用来写入字符文件的便捷类。
* 父类:OutputStreamWriter
* FileWriter 用于写入字符流。要写入原始字节流,请考虑使用 FileOutputStream。
*
*/
public static void main(String[] args) throws IOException {
//1:创建字符输出便捷流
FileWriter fw = new FileWriter("a.txt");
//2:写数据
fw.write("你好吗");
//3:关闭流
fw.close();
}
}
FileReader
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Demo {
/*
* FileReader:用来读取字符文件的便捷类。
* 父类:InputStreamReader
* FileReader 用于读取字符流。要读取原始字节流,请考虑使用 FileInputStream。
*/
public static void main(String[] args) throws IOException {
//1:创建字符输入便捷流
FileReader fr = new FileReader("a.txt");
//2:读数据
//2.1 一次读取一个字符
/*int num = 0;
while((num = fr.read())!=-1){
System.out.print((char)num);
}*/
//2.2 一次读取一个字符数组
char[] ch = new char[1024*1024];
int num = 0;
while((num = fr.read(ch))!=-1){
System.out.print(new String(ch,0,num));
}
//3:关闭流
fr.close();
}
}
BufferedWriter
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class Demo {
/*
* BufferedWriter
* 将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
* 从以下版本开始: JDK1.1
*
* 注意:字符串缓冲区,需要flush,才能写入文件
* 一般情况下,1024的倍数刷一下
* 注意:close既能刷空,还能关闭,flush只能刷空
*
*/
public static void main(String[] args) throws IOException {
//1:创建字符缓冲输出流
//总共创建了3个流对象
//最外层是字符缓冲流
//第二层是字符转换流
//最里层是字节输出流
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream("a.txt")));
//BufferedWriter bw2 = new BufferedWriter(new FileWriter("a.txt"));
//2:写数据
bw.write("你好");
//bw.write("\r\n");
bw.newLine(); //换行
bw.write("我很好");
bw.flush();
//bw.close();
bw.write("我可以进入吗?");//Stream closed
//bw.flush();
bw.close();
}
}
BufferedReader
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class Demo {
/*
* BufferedReader
* 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
* 注意:字符缓冲流
* 一次读取一行 readLine()
*/
public static void main(String[] args) {
//1:创建字符缓冲输入流
BufferedReader br = null;
try {
br = new BufferedReader(
new InputStreamReader(new FileInputStream("斗破苍穹.txt"), "utf-8"));
//2:读取数据
//2.1 一次读取一个字符
/*int num = 0;
while((num = br.read())!=-1){
System.out.print((char)num);
}*/
//2.2 一次读取一个字符数组
/* int num = 0;
char[] ch = new char[1024*1024];
while((num = br.read(ch))!=-1){
System.out.print(new String(ch,0,num));
}*/
//2.3一次读取一行
String line = null;
while((line = br.readLine())!=null){
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}