1、按照字符流的方式读取文件内容

  1. /**
  2. * 按照字符流的方式读取文件内容
  3. * <p>
  4. * Step 1.根据文件路径,构建文件对象
  5. * Step 2.创建字符输入流读取文件内容
  6. * Step 3.创建字符数组来存放读取内容
  7. * Step 4.关闭读取文件的字符输入流
  8. *
  9. * @return
  10. */
  11. public static void readFileByFileReader(String path) {
  12. System.out.println("=== 字符流读取 开始 ===");
  13. // 根据路径拿到文件对象
  14. File file = new File(path);
  15. // 初始化字符输入流
  16. Reader fileReader = null;
  17. try {
  18. // 创建一个文件字符输入流与源文件接通
  19. fileReader = new FileReader(file);
  20. // 初始化存放读取内容的字符数组
  21. char[] buffer = new char[100];
  22. // 定义读取到字符长度
  23. int len;
  24. while ((len = fileReader.read(buffer)) != -1) {
  25. // 一次读取一个字符数组长度的字符串
  26. fileReader.read(buffer,0,len);
  27. System.out.println("本次读取" + len + "个字节数据内容为:" + new String(buffer, 0, len));
  28. }
  29. } catch (FileNotFoundException e) {
  30. e.printStackTrace();
  31. } catch (IOException e) {
  32. e.printStackTrace();
  33. } finally { // 关闭流过程,也有可能出现异常
  34. try {
  35. if (fileReader != null) fileReader.close();
  36. } catch (IOException e) {
  37. e.printStackTrace();
  38. }
  39. }
  40. System.out.println("=== 字符流读取 结束 ===");
  41. }

2、通过字符流的方式写入信息到文件

  1. /**
  2. * 通过字符流的方式写入信息到文件
  3. * <p>
  4. * Step 1.根据文件路径,构建文件对象
  5. * Step 2.创建字符输出流写出信息到文件
  6. * Step 3.构造待写出的内容,并转为字符数组
  7. * Step 4.关闭读取文件的字符输出流
  8. */
  9. public static void writeFileByFileWriter(String path) {
  10. System.out.println("=== 字符流写入文件 Start ===");
  11. // 创建写出文件
  12. File file = new File(path);
  13. // 初始化字符输出流
  14. Writer fileWriter = null;
  15. String strInfo = "字符写出数据tangjian";
  16. try {
  17. // 创建输出字符流
  18. fileWriter = new FileWriter(file);
  19. // 写出内容
  20. fileWriter.write(strInfo);
  21. System.out.println("按照字符流成功写出内容:" + strInfo);
  22. } catch (FileNotFoundException e) {
  23. e.printStackTrace();
  24. } catch (IOException e) {
  25. e.printStackTrace();
  26. } finally {// 关闭写出流时,注意抓异常
  27. try {
  28. if (fileWriter != null) fileWriter.close();
  29. } catch (IOException e) {
  30. e.printStackTrace();
  31. }
  32. }
  33. System.out.println("=== 字符流写入文件 End ===");
  34. }