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


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

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

    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("
    "+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 ="
    用新的构造方法追加内容";
                out.write(str.getBytes());
                out.close();
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            
    
        }
    
    }
  • 相关阅读:
    CSS(二)样式优先级别和css的单位刻度
    Ural 1416 Confidential
    UVA 10600
    UESTC 1558 Charitable Exchange
    ZOJ 3349 Special Subsequence
    mysql主从复制
    debian安装mysql
    lpeg
    多线程程序 怎样查看每个线程的cpu占用
    linux TIME_WAIT过多的解决方法
  • 原文地址:https://www.cnblogs.com/jingzhenhua/p/5910758.html
Copyright © 2020-2023  润新知