我是一名经验丰富的 C++ 人,正在学习 Java 并在此网站上度过了愉快的学习时光。最近,我对 Java 如何将一个文件附加到另一个文件进行了一些研究。假设我有两个文件。这是 C:\tmp\permFile.txt:
Line A: abcef
Line B: ghijk
Line C: lmnop
Run Code Online (Sandbox Code Playgroud)
这是 C:\tmp\tmpFile.txt:
line 1: 1234567890
line 2: 0123456789
line 3: 9012345678
line 4: 8901234567
Run Code Online (Sandbox Code Playgroud)
这里的目标很简单;我想将 tmpFile.txt 附加到 permFile.txt 的末尾。我研究了代码来做到这一点,并认为我已经解决了问题。直到今天我才注意到运行代码后 permFile.txt 看起来像这样:
Line A: abcef
Line B: ghijk
Line C: lmnop: 9012345678
line 4: 8901234567
Run Code Online (Sandbox Code Playgroud)
我认为这里发生的是 permFile 长 48 个字符(16 个字符/行)。我的代码在 tmpFile 中精确计算了 48 个字符,并从第 49 个字符开始追加。很奇怪吧?
这是代码:
import java.io.*;
public class myProgram {
public static void main(String[] args) throws IOException {
// Define two filenames:
String permFile = "C:\tmp\permFile.txt";
String tmpFile = "C:\tmp\tmpFile.txt";
appendFiles appender = new appendFiles(permFile, tmpFile);
}
}
public class appendFiles {
public static void appendFiles(String permFile, String tmpFile) throws IOException {
// Appends file "tmpFile" to the end of "permFile"
// Code adapted from: https://www.daniweb.com/software-development/java/threads/44508/appending-two-java-text-files
try {
// create a writer for permFile
BufferedWriter out = new BufferedWriter(new FileWriter(permFile, true));
// create a reader for tmpFile
BufferedReader in = new BufferedReader(new FileReader(tmpFile));
String str;
while ((str = in.readLine()) != null) {
out.write(str);
}
in.close();
out.close();
} catch (IOException e) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
我怀疑我需要做的就是添加一行其中“点”的“出”的BufferedWriter到END permFile的,而不是开始。但是我这样做的尝试是灾难性的,不值得在此详述。另外,我不明白的是,如果在 permFile 的开头指向“out”,那么为什么 tmpFile 的内容不会覆盖所有 permFile。怀疑我犯了一个简单的菜鸟错误。
非常感谢!-P
PS - 无法告诉你我有多喜欢这个网站。我总是尝试研究自己的解决方案,但是当您遇到特定问题时,除了向真人寻求帮助外,别无他法。
只需在打印中添加换行符,例如:
out.write("\n" + str);
Run Code Online (Sandbox Code Playgroud)
这对我有用。方法运行后,perm 文件包含:
Line A: abcef
Line B: ghijk
Line C: lmnop
line 1: 1234567890
line 2: 0123456789
line 3: 9012345678
line 4: 8901234567
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5606 次 |
| 最近记录: |