【问题标题】:Java: Copy textfile content to another without replacingJava:将文本文件内容复制到另一个而不替换
【发布时间】:2013-10-22 09:14:43
【问题描述】:
我想获取用户选择的一个文本文件的内容并将其添加到另一个文本文件而不替换当前内容。比如:
更新:如何以编号方式将其添加到第二个文件中?
文本文件1:
AAA BBB CCC
AAA BBB CCC
TextFile2:(复制后)
EEE FFF GGG
AAA BBB CCC
AAA BBB CCC
更新:我不得不删除我的代码,因为它可能被认为是抄袭,这个问题得到了回答,所以我知道该怎么做,感谢大家帮助我。
【问题讨论】:
标签:
java
eclipse
filereader
filewriter
【解决方案1】:
试试这个
你必须使用
new FileWriter(fileName,append);
这会以附加模式打开文件:
根据它所说的javadoc
参数:
fileName String 系统相关的文件名。
如果为真,则追加布尔值,则数据将写入文件末尾而不是开头。
public static void main(String[] args) {
FileReader Read = null;
FileWriter Import = null;
try {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a file name: ");
System.out.flush();
String filename = scanner.nextLine();
File file = new File(filename);
Read = new FileReader(filename);
Import = new FileWriter("songstuff.txt",true);
int Rip = Read.read();
while(Rip!=-1) {
Import.write(Rip);
Rip = Read.read();
}
} catch(IOException e) {
e.printStackTrace();
} finally {
close(Read);
close(Import);
}
}
public static void close(Closeable stream) {
try {
if (stream != null) {
stream.close();
}
} catch(IOException e) {
// JavaProgram();
}
}
【解决方案2】:
使用new FileWriter("songstuff.txt", true); 附加到文件而不是覆盖它。
参考:FileWriter
【解决方案3】:
您可以使用 Apache commons IO。
Apache Commons IO
例子:
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.commons.io.FileUtils;
public class HelpTest {
public static void main(String args[]) throws IOException, URISyntaxException {
String inputFilename = "test.txt"; // get from the user
//Im loading file from project
//You might load from somewhere else...
URI uri = HelpTest.class.getResource("/" + inputFilename).toURI();
String fileString = FileUtils.readFileToString(new File(uri));
// output file
File outputFile = new File("C:\\test.txt");
FileUtils.write(outputFile, fileString, true);
}
}
【解决方案4】:
Append the file
在给定 File 对象的情况下构造一个 FileWriter 对象。如果第二个参数为真,那么字节将被写入文件的末尾而不是开头。
new FileWriter(fileName,true);