FileWriter常用方法

  1. new FileWriter(File/String):覆盖模式,相当于流的指针在首端
  2. new FileWriter(File/String,true):追加模式,相当于流的指针在尾端
  3. write(int):写入单个字符
  4. write(char[]):写入指定数组
  5. write(char[],off,len):写入指定数组的指定部分
  6. write (string):写入整个字符串
  7. write(string,off,len):写入字符串的指定部分

相关API:

  1. String类:toCharArray:将String转换成char[]

注意:
FileWriter使用后,必须要关闭(close)或刷新(flush),否则写入不到指定的文件!

  1. package test;
  2. import java.io.FileWriter;
  3. import java.io.IOException;
  4. public class Main {
  5. public static void main(String[] args) {
  6. String filePath = "D:\\a.txt";
  7. //创建FileWriter对象
  8. FileWriter fileWriter = null;
  9. char[] chars = {'W', 'T', 'Y'};
  10. try {
  11. fileWriter = new FileWriter(filePath);//默认是覆盖写入
  12. // 3) write(int):写入单个字符
  13. fileWriter.write('H');
  14. // 4) write(char[]):写入指定数组
  15. fileWriter.write(chars);
  16. // 5) write(char[],off,len):写入指定数组的指定部分
  17. fileWriter.write("WTY2002".toCharArray(), 0, 3);
  18. // 6) write(string):写入整个字符串
  19. fileWriter.write("Keep");
  20. // 7) write(string,off,len):写入字符串的指定部分
  21. fileWriter.write("Once", 0, 2);
  22. //在数据量大的情况下,可以使用循环操作.
  23. } catch (IOException e) {
  24. e.printStackTrace();
  25. } finally {
  26. //对应FileWriter , 一定要关闭流,或者flush才能真正的把数据写入到文件
  27. try {
  28. //fileWriter.flush();
  29. //关闭文件流,等价 flush() + 关闭
  30. fileWriter.close();
  31. } catch (IOException e) {
  32. e.printStackTrace();
  33. }
  34. }
  35. System.out.println("程序结束...");
  36. }
  37. }

image.png
image.png
此处为何任然是追加写法?

覆盖写法是要在关闭流之后,然后打开,再次写入时产生的效果!

案例:

将“别像个轰种似的愁眉苦脸,甭管你被打倒了多少次,拍拍身上的尘土,再笑着站起来吧,再笑着投入战斗。”写入到文件D:\a.txt文件中。

  1. package test;
  2. import java.io.FileWriter;
  3. import java.io.IOException;
  4. public class Main {
  5. public static void main(String[] args) {
  6. String filePath = "D:\\a.txt";
  7. //创建FileWriter对象
  8. FileWriter fileWriter = null;
  9. try {
  10. fileWriter = new FileWriter(filePath);//默认是覆盖写入
  11. //write(string):写入整个字符串
  12. fileWriter.write("别像个轰种似的愁眉苦脸,甭管你被打倒了多少次,拍拍身上的尘土,再笑着站起来吧,再笑着投入战斗。");
  13. } catch (IOException e) {
  14. e.printStackTrace();
  15. } finally {
  16. //对应FileWriter , 一定要关闭流,或者flush才能真正的把数据写入到文件
  17. try {
  18. //fileWriter.flush();
  19. //关闭文件流,等价 flush() + 关闭
  20. fileWriter.close();
  21. } catch (IOException e) {
  22. e.printStackTrace();
  23. }
  24. }
  25. System.out.println("程序结束...");
  26. }
  27. }

image.png
image.png