【Java学习】09入门篇之IO流

前言:由于一些原因,Java学习系列中间鸽了两周,从今天开始尽量恢复1天1更的频率。让我们一起努力变强吧!

Java读写,读就是读进来,写就是写出去,分别对应IO流中的输入流(input)和输出流(output)。详细划分可分为:字节输入流、字节输出流、字符输入流、字符输出流四类。本篇我们仅讨论字符输入和字符输出,即只针对纯文本文件的IO流。
读写文件需要导包、创建使用三步骤。FileReader、FileWriter以及他们的升级版BufferedReader、BufferedWriter。Buffered指缓存,相比于FileReader和FileWriter,它可以写入和拿取8192个长度的char[ ]字符数组,性能更高。

基本使用代码展示:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
public class Demo08IO {
 public static void main(String[] args) throws IOException {
  // 基本FileWriter覆盖用法
  FileWriter fw01 = new FileWriter("demo01.txt"); // 创建fw01
  fw01.write("xxx,你还好吗?\r\n我爱你!"); // 写入,/r/n是windows换行符
  fw01.close(); // 关闭流
  // xxx,你还好吗?
  // 我爱你!
  // 不覆盖,连续写入
  String s = new String("world!&&&&&");
  FileWriter fw02 = new FileWriter("demo02.txt", true); // 创建
  fw02.write(20020); // 直接写入单个字符的Unicode码或者ASCII码
  fw02.write("\r\n");// 换行
  fw02.write("Hello");// 字符串
  fw02.write(s, 0, 5);// 部分字符串,也可引用字符数组
  fw02.close();
  // 结果不再展示
  
  // BufferedWriter用法
  FileWriter fw03 = new FileWriter("demo03.txt", true); // 创建
  BufferedWriter bw = new BufferedWriter(fw03);
  bw.write("HelloWorld!\r\n");
  bw.newLine(); // 换行!只有BufferedWriter有该方法,建议使用此换行方法
  bw.write("HelloWorld!");
  bw.close();
  // 结果不再展示
  
  //FileReader和BufferedReader展示
  ArrayList<String> arr = new ArrayList<>();
  FileReader fr = new FileReader("demo03.txt");
  BufferedReader br = new BufferedReader(fr);
  String line;
  while ((line = br.readLine()) != null) { //Buffered特殊方法之readLine
   arr.add(line);
   System.out.println(line);
  }
  br.close();
 }
}
发布了11 篇原创文章 · 获赞 2 · 访问量 187

猜你喜欢

转载自blog.csdn.net/qq_42934847/article/details/105175259