Java追加文件

  1. import java.io.BufferedWriter;
  2. import java.io.FileWriter;
  3. import java.io.IOException;
  4. import java.io.RandomAccessFile;
  5. import java.io.OutputStreamWriter;
  6. import java.io.File;
  7. import java.io.FileOutputStream;
  8. import java.lang.*;
  9. /******************************
  10. * 写文本
  11. * java.lang.Object
  12. |-java.io.Writer
  13. |-java.io.OutputStreamWriter
  14. |-java.io.FileWriter
  15. * java.lang.Object
  16. |-java.io.Writer
  17. |-java.io.BufferedWriter
  18. * 写二进制
  19. * java.lang.Object
  20. |-java.io.OutputStream
  21. |-java.io.FileOutputStream
  22. *******************************/
  23. /**
  24. * 将内容追加到文件尾部
  25. */
  26. public class AppendToFile {
  27. /**
  28. * A方法追加文件:使用RandomAccessFile
  29. * @param fileName 文件名
  30. * @param content 追加的内容
  31. * note:适用于二进制文件,不支持中文字符
  32. */
  33. public static void appendMethodBytes(String fileName,String content){
  34. try {
  35. // 打开一个随机访问文件流,按读写方式
  36. RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
  37. // 文件长度,字节数
  38. long fileLength = randomFile.length();
  39. //将写文件指针移到文件尾。
  40. randomFile.seek(fileLength);
  41. randomFile.writeBytes(content);
  42. randomFile.close();
  43. } catch (IOException e){
  44. e.printStackTrace();
  45. }
  46. }
  47. /**
  48. * B方法追加文件:使用FileWriter
  49. * @param fileName
  50. * @param content
  51. * note:适用于文本文件
  52. */
  53. public static void appendMethodChrs(String fileName, String content){
  54. try {
  55. //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
  56. FileWriter writer = new FileWriter(fileName, true);
  57. writer.write(content);
  58. writer.close();
  59. } catch (IOException e) {
  60. e.printStackTrace();
  61. }
  62. }
  63. /**
  64. * 按指定charset追加文本文件,使用BufferedWriter
  65. * @param fileName
  66. * @param content
  67. * @param charset
  68. */
  69. public static void appendMethodCharset(String fileName,String content,String charset)
  70. {
  71. try {
  72. //FileOutputStream构造函数中的第二个参数true表示以追加形式写文件
  73. BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName,true),charset));
  74. out.write(content);
  75. out.close();
  76. } catch (IOException e) {
  77. e.printStackTrace();
  78. }
  79. }
  80. public static void main(String[] args) {
  81. String fileName = "appendTemp.txt";
  82. String fileName1 = "appendTemp1.txt";
  83. String fileName2 = "appendTemp2.txt";
  84. String content = "new append!这是";
  85. //按方法A追加文件
  86. AppendToFile.appendMethodBytes(fileName, content);
  87. AppendToFile.appendMethodBytes(fileName, "append end. n");
  88. //显示文件内容
  89. ReadFromFile.readFileByLines(fileName);
  90. //按方法B追加文件
  91. AppendToFile.appendMethodChrs(fileName1, content);
  92. AppendToFile.appendMethodChrs(fileName1, "append end. n");
  93. //按appendMethodCharset追加文件
  94. AppendToFile.appendMethodCharset(fileName2, content, "gbk");
  95. AppendToFile.appendMethodCharset(fileName2,"append end. n", "gbk");
  96. //显示文件内容
  97. ReadFromFile.readFileByLines(fileName1);
  98. }
  99. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值