第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"));
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进行随机读写
可以尝试使用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 ;
}
能不能取消删除源文件的动作,(不删除,把里边内容直接清空行吗)
直接用下面语句不知道会不会自动覆盖?
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去掉
这样会不会覆盖呢
改为 BufferedWriter bw = new BufferedWriter(new FileWriter(out)) ; 把 true去掉
这样会不会覆盖呢
#5
不删除说明文件存在,无法重命名。有true就不会覆盖,动手操作是最好的验证了。
#6
我没说重命名啊,直接覆盖不行吗
#7
思路:插入的内容list(A),原文本的内容(B),
把B读取出来,然后把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"));
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进行随机读写
可以尝试使用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 ;
}
能不能取消删除源文件的动作,(不删除,把里边内容直接清空行吗)
直接用下面语句不知道会不会自动覆盖?
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去掉
这样会不会覆盖呢
改为 BufferedWriter bw = new BufferedWriter(new FileWriter(out)) ; 把 true去掉
这样会不会覆盖呢
#5
不删除说明文件存在,无法重命名。有true就不会覆盖,动手操作是最好的验证了。
#6
我没说重命名啊,直接覆盖不行吗
#7
思路:插入的内容list(A),原文本的内容(B),
把B读取出来,然后把A写入覆盖,然后再写入B
把B读取出来,然后把A写入覆盖,然后再写入B