如何利用输入输出流往文件中不断添加内容

这里简单的实现了对文件添加内容时不改变原来的内容的情况下,在原内容基础上进行添加内容:

思路:先输入再输出,用变量去接收文件的原内容

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

public class Test04 {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();                      //输入内容
        try {
            File file =new File("d:/test.txt");                 //创建文件
            if(!file.exists()){
                file.createNewFile();
            }
            FileInputStream in=new FileInputStream("d:/test.txt");         //输入流
            byte[] b=new byte[1024];                                       //byte数组——容器
            int i;                                                         //长度
            StringBuilder wenzi=new StringBuilder();                                               //字符串变量接收文件内容
            while((i=in.read(b))>0){                    //循环读取
                wenzi.append(new String(b,0,i));                //获得文件中的内容
            }
            in.close();
            wenzi.append("\r\n"+str);                     //创建新的内容=之前的内容+新输入的内容
            FileOutputStream out =new FileOutputStream("d:/test.txt");              //输出流
            byte[] newb=wenzi.toString().getBytes();
            out.write(newb);
            out.close();            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

 java提供了追加往文件中写入内容的方法:

public class Zhuijiaxieru {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        String filename="d:/test.txt";
        try {
            FileOutputStream out =new FileOutputStream(filename,true);
            String str ="\r\n用新的构造方法追加内容";
            out.write(str.getBytes());
            out.close();
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        

    }

}

 

转载于:https://www.cnblogs.com/jingzhenhua/p/5910758.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值