字符流
大约 2 分钟JavaIO流
当需要读取的数据是纯文本的形式时,使用字符流来操作会更加方便。
字符输入流
所有字符输入流的父类是java.io.Reader,是以字符为单位的输入流。
FileReader创建对象
public FileReader(String fileName) throws FileNotFoundException
public FileReader(File file) throws FileNotFoundException
FileReader读取数据
读取一个字符
// 读取单个字符 public int read() throws IOException
使用:
public static void main(String[] args) throws IOException { FileReader reader = new FileReader("io/src/main/java/com/a.txt"); int ch; while ((ch = reader.read()) != -1){ System.out.println((char) ch); } reader.close(); }
一次读取一个字符数组
public int read(char cbuf[]) throws IOException
使用:
public static void main(String[] args) throws IOException { FileReader reader = new FileReader("io/src/main/java/com/a.txt"); char[] chars = new char[10]; int len; while ((len = reader.read(chars)) != -1){ System.out.println(new String(chars, 0, len)); } reader.close(); }
当需要读取的数据是纯 文本的形式时,使用字 符流来操作会更加方便 。 Process finished with exit code 0
字符输出流
所有字符输出流的父类是java.io.Writer,是以字符为单位的输出流。
FileWriter创建对象
public FileWriter(String fileName) throws IOException
public FileWriter(File file) throws IOException
FileWriter写入文件
一次写一个字符
public void write(int c) throws IOException public void flush() throws IOException
使用:
public static void main(String[] args) throws IOException { FileWriter writer = new FileWriter("io/src/main/java/com/aaa.txt"); writer.write(97); writer.write('好'); writer.write('c'); // 写入的数据在缓冲区,flush或者close之后才会真正写入文件 writer.flush(); writer.close(); }
一次写一个字符数组
public void write(char cbuf[]) throws IOException
使用:
public static void main(String[] args) throws IOException { FileWriter writer = new FileWriter("io/src/main/java/com/aaa.txt"); char[] chars = new char[]{'你', '好', 'a'}; writer.write(chars); writer.flush(); writer.close(); }
一次写入一个字符串
public void write(String str) throws IOException
使用:
public static void main(String[] args) throws IOException { FileWriter writer = new FileWriter("io/src/main/java/com/aaa.txt"); writer.write("你好a"); writer.write("你好a"); writer.flush(); writer.close(); }
字符流实现纯文本文本复制
public static void main(String[] args) throws IOException {
FileReader reader = new FileReader("io/src/main/java/com/a.txt");
FileWriter writer = new FileWriter("io/src/main/java/com/bbb.txt");
char[] chars = new char[10];
int len;
while ((len = reader.read(chars)) != -1){
writer.write(chars, 0, len);
// 刷新缓冲区数据到文件
writer.flush();
}
reader.close();
writer.close();
}