java 怎么将一个list集合插入到一个文本文件中?

时间:2022-10-18 21:01:46
有个文本文件:“排名.txt”内容如下
第4名
第5名
第6名
第7名

有个list集合:“aa”内容如下
第1名
第2名
第3名

现在要把这个list集合从文件开头插入到文本文件:“排名.txt”里面使文本文件变成如下内容:
第1名
第2名
第3名
第4名
第5名
第6名
第7名
大家知道怎么弄吗?网上有一大堆例子,他妈都是从后面追加的。这里我要从开头插入,怎么办啊?
希望大家回复直接上代码,不要绕圈子,满意有高分相送

7 个解决方案

#1


//输入文件
File inFile = new File("paiming.txt");
FileReader fileReader = new FileReader(inFile);
BufferedReader bufferedReader = new BufferedReader(fileReader);
//输出文件
File outFile = new File("aa.txt");
FileWriter fileWriter = new FileWriter(outFile,true);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.newLine();
String str = null;
while((str=bufferedReader.readLine())!=null){
bufferedWriter.write(str);
bufferedWriter.newLine();
bufferedWriter.flush();
}
//关闭输入输出流
bufferedReader.close();fileReader.close();
bufferedWriter.close();fileWriter.close();

//删除原输入文件
inFile.delete();
//输出文件改名
outFile.renameTo(new File("paiming.txt"));

#2


最简单的方法就是把两个文件的内容都读出来,然后再重新写入 排名.txt

可以尝试使用RandomAccessFile进行随机读写

#3


回复qq_17495033

能不能取消删除源文件的动作,(不删除,把里边内容直接清空行吗)

直接用下面语句不知道会不会自动覆盖?
File out = new File(源文件)
if(out.exists());{//表示存在
BufferedWriter bw = new BufferedWriter(new FileWriter(out,true)) ;   
        for(String gdhqwbjh : hqwbfg ){   
            bw.write(gdhqwbjh) ;   
            bw.newLine() ;   
        }   
        if(bw != null ){   
            bw.close() ;   
            bw = null ;   
        } 

#4


错了!!!要把BufferedWriter bw = new BufferedWriter(new FileWriter(out,true)) ;  
改为 BufferedWriter bw = new BufferedWriter(new FileWriter(out)) ; 把 true去掉
这样会不会覆盖呢

#5


不删除说明文件存在,无法重命名。有true就不会覆盖,动手操作是最好的验证了。

#6


我没说重命名啊,直接覆盖不行吗

#7


思路:插入的内容list(A),原文本的内容(B),
          把B读取出来,然后把A写入覆盖,然后再写入B

#1


//输入文件
File inFile = new File("paiming.txt");
FileReader fileReader = new FileReader(inFile);
BufferedReader bufferedReader = new BufferedReader(fileReader);
//输出文件
File outFile = new File("aa.txt");
FileWriter fileWriter = new FileWriter(outFile,true);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.newLine();
String str = null;
while((str=bufferedReader.readLine())!=null){
bufferedWriter.write(str);
bufferedWriter.newLine();
bufferedWriter.flush();
}
//关闭输入输出流
bufferedReader.close();fileReader.close();
bufferedWriter.close();fileWriter.close();

//删除原输入文件
inFile.delete();
//输出文件改名
outFile.renameTo(new File("paiming.txt"));

#2


最简单的方法就是把两个文件的内容都读出来,然后再重新写入 排名.txt

可以尝试使用RandomAccessFile进行随机读写

#3


回复qq_17495033

能不能取消删除源文件的动作,(不删除,把里边内容直接清空行吗)

直接用下面语句不知道会不会自动覆盖?
File out = new File(源文件)
if(out.exists());{//表示存在
BufferedWriter bw = new BufferedWriter(new FileWriter(out,true)) ;   
        for(String gdhqwbjh : hqwbfg ){   
            bw.write(gdhqwbjh) ;   
            bw.newLine() ;   
        }   
        if(bw != null ){   
            bw.close() ;   
            bw = null ;   
        } 

#4


错了!!!要把BufferedWriter bw = new BufferedWriter(new FileWriter(out,true)) ;  
改为 BufferedWriter bw = new BufferedWriter(new FileWriter(out)) ; 把 true去掉
这样会不会覆盖呢

#5


不删除说明文件存在,无法重命名。有true就不会覆盖,动手操作是最好的验证了。

#6


我没说重命名啊,直接覆盖不行吗

#7


思路:插入的内容list(A),原文本的内容(B),
          把B读取出来,然后把A写入覆盖,然后再写入B