Java追加新文件';将数据复制到旧文件
在第一步中,我创建一个文件,比如test1.txt并向其中添加记录,其余的记录添加到test2.txt。现在我想将test2.txt的记录附加到test1.txt。如何将它们附加到test1.txt。我划分文件的原因是我有一个大约53K条记录的列表,它无法写入单个文件,因为缓冲区写入器在达到52K时正在关闭。 我用来创建单个文件的函数是Java追加新文件';将数据复制到旧文件,java,file-io,Java,File Io,在第一步中,我创建一个文件,比如test1.txt并向其中添加记录,其余的记录添加到test2.txt。现在我想将test2.txt的记录附加到test1.txt。如何将它们附加到test1.txt。我划分文件的原因是我有一个大约53K条记录的列表,它无法写入单个文件,因为缓冲区写入器在达到52K时正在关闭。 我用来创建单个文件的函数是 public void exportApprovedList() throws IOException { File approvedWhite
public void exportApprovedList() throws IOException {
File approvedWhiteListFile = new File("/var/tmp/livecron/dictionary.common");
BufferedWriter bw = new BufferedWriter(new FileWriter(approvedWhiteListFile));
if (approvedWhiteListFile.exists()) {
List<WhiteListTerm> approvedWhiteList = whiteListBO.getByStatus("APPROVED");
for (WhiteListTerm whiteList : approvedWhiteList) {
bw.write(whiteList.getTerm() + "|" +
whiteListCategoryBO.getById(whiteList.getCategoryId()).getCategoryname());
bw.newLine();
}
}
bw.close();
}
public void exportApprovedList()引发IOException{
File approvedWhiteListFile=新文件(“/var/tmp/livecron/dictionary.common”);
BufferedWriter bw=新的BufferedWriter(新的FileWriter(approvedWhiteListFile));
如果(approvedWhiteListFile.exists()){
List approvedWhiteList=whiteListBO.getByStatus(“已批准”);
对于(白名单术语白名单:approvedWhiteList){
write(白名单.getTerm()+“|”+
getById(whiteList.getCategoryId()).getCategoryname());
换行符();
}
}
bw.close();
}
试试这个
导入java.io.*;
公共类文件读写{
public void writeFile(String sorcefile)
{
try{
FileInputStream fis = new FileInputStream(sorcefile);
DataInputStream dis = new DataInputStream(fis);
BufferedReader br = new BufferedReader(new InputStreamReader(dis));
FileWriter fw=new FileWriter("src/output.java",true);
BufferedWriter bw=new BufferedWriter(fw);
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null)
{
System.out.println (strLine);
bw.append(strLine);
}
//Close the input stream
br.close();
dis.close();
fis.close();
fw.flush();
bw.flush();
fw.close();
bw.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
公共静态void main(字符串参数[])
{
FileReadWrite frw=新建FileReadWrite();
frw.writeFile(“具有完整路径的sorce文件名”);
}
}试试这个
导入java.io.*;
公共类文件读写{
public void writeFile(String sorcefile)
{
try{
FileInputStream fis = new FileInputStream(sorcefile);
DataInputStream dis = new DataInputStream(fis);
BufferedReader br = new BufferedReader(new InputStreamReader(dis));
FileWriter fw=new FileWriter("src/output.java",true);
BufferedWriter bw=new BufferedWriter(fw);
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null)
{
System.out.println (strLine);
bw.append(strLine);
}
//Close the input stream
br.close();
dis.close();
fis.close();
fw.flush();
bw.flush();
fw.close();
bw.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
公共静态void main(字符串参数[])
{
FileReadWrite frw=新建FileReadWrite();
frw.writeFile(“具有完整路径的sorce文件名”);
}
}刚刚尝试将整个列表写入单个文件,但最后的记录丢失,尚未开始追加部分。只是检查如何开始在写入后关闭文件?听起来好像没有刷新缓冲区。已将我使用的函数添加到我的帖子中。你能告诉我怎么做吗?@prunge是对的。您没有刷新,因此缓冲区没有完全保存到磁盘。阅读:感谢Fredrik提供了bufferedwriter文章的链接。因此,我需要清空缓冲区写入程序,即在缓冲更多数据之前刷新它。那么,我可以在bw.newLine()之前添加bw.flush()行吗?我只是尝试将整个列表写入单个文件,但最后的记录丢失,尚未开始追加部分。只是检查如何开始在写入后关闭文件?听起来好像没有刷新缓冲区。已将我使用的函数添加到我的帖子中。你能告诉我怎么做吗?@prunge是对的。您没有刷新,因此缓冲区没有完全保存到磁盘。阅读:感谢Fredrik提供了bufferedwriter文章的链接。因此,我需要清空缓冲区写入程序,即在缓冲更多数据之前刷新它。那么,我可以在bw.newLine()之前添加bw.flush()行吗。