在 Java 中将一个文本文件附加到另一个文本文件
Appending one text file to another in Java
晚上好,
我对在这里提问完全陌生,如果我做错了,我深表歉意。
我正在尝试将一个完整的 .txt 文件附加到另一个文件的末尾,换行,而不重写内容。
例如,我在one.txt
中有这个
TEST 1 00001 BCOM
我在 two.txt,
中有这个
TEST 2 00001 BCOM
这是我发现唯一可以copy/overwrite到另一个文件的工作代码,
我复制的所有其他文件,重新处理文件路径和名称并尝试过,但它对我不起作用。 Java.
我还是初学者
import java.io.*;
class CompileData {
public static void main(String args[]) {
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader("one.txt");
fw = new FileWriter("two.txt");
int c = fr.read();
while(c!=-1) {
fw.write(c);
c = fr.read();
}
} catch(IOException e) {
e.printStackTrace();
} finally {
close(fr);
close(fw);
}
}
public static void close(Closeable stream) {
try {
if (stream != null) {
stream.close();
}
} catch(IOException e) {
}
}
}
使用此代码,而不是为 two.txt
获取此代码
TEST 1 00001 BCOM
TEST 2 00002 BCOM
我只得到 two.txt
TEST 1 00001 BCOM
我们将不胜感激任何帮助、提示、指示和答案!
为此,您可以使用 FileWriter 的附加功能 - 通过调用接受布尔值的参数化构造函数是否附加。
import java.io.*;
class CompileData {
public static void main(String args[]) {
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader("one.txt");
fw = new FileWriter("two.txt",true);
int c = fr.read();
fw.write("\r\n");
while(c!=-1) {
fw.write(c);
c = fr.read();
}
} catch(IOException e) {
e.printStackTrace();
} finally {
close(fr);
close(fw);
}
}
public static void close(Closeable stream) {
try {
if (stream != null) {
stream.close();
}
} catch(IOException e) {
}
}
}
输出
测试 2 00002 BCOM
测试 1 00001 BCOM
如果您想追加到文件开头,您可以使用 RandomAccessFile 追加到所需位置。此处有更多详细信息 - RandomAccessFile API
RandomAccessFile f = new RandomAccessFile(new File("two.txt"), "rw");
f.seek(0);
f.write("TEST 1 00001 BCOM".getBytes());
f.close();
晚上好,
我对在这里提问完全陌生,如果我做错了,我深表歉意。 我正在尝试将一个完整的 .txt 文件附加到另一个文件的末尾,换行,而不重写内容。
例如,我在one.txt
中有这个TEST 1 00001 BCOM
我在 two.txt,
中有这个TEST 2 00001 BCOM
这是我发现唯一可以copy/overwrite到另一个文件的工作代码, 我复制的所有其他文件,重新处理文件路径和名称并尝试过,但它对我不起作用。 Java.
我还是初学者import java.io.*;
class CompileData {
public static void main(String args[]) {
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader("one.txt");
fw = new FileWriter("two.txt");
int c = fr.read();
while(c!=-1) {
fw.write(c);
c = fr.read();
}
} catch(IOException e) {
e.printStackTrace();
} finally {
close(fr);
close(fw);
}
}
public static void close(Closeable stream) {
try {
if (stream != null) {
stream.close();
}
} catch(IOException e) {
}
}
}
使用此代码,而不是为 two.txt
获取此代码TEST 1 00001 BCOM
TEST 2 00002 BCOM
我只得到 two.txt
TEST 1 00001 BCOM
我们将不胜感激任何帮助、提示、指示和答案!
为此,您可以使用 FileWriter 的附加功能 - 通过调用接受布尔值的参数化构造函数是否附加。
import java.io.*;
class CompileData {
public static void main(String args[]) {
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader("one.txt");
fw = new FileWriter("two.txt",true);
int c = fr.read();
fw.write("\r\n");
while(c!=-1) {
fw.write(c);
c = fr.read();
}
} catch(IOException e) {
e.printStackTrace();
} finally {
close(fr);
close(fw);
}
}
public static void close(Closeable stream) {
try {
if (stream != null) {
stream.close();
}
} catch(IOException e) {
}
}
}
输出
测试 2 00002 BCOM
测试 1 00001 BCOM
如果您想追加到文件开头,您可以使用 RandomAccessFile 追加到所需位置。此处有更多详细信息 - RandomAccessFile API
RandomAccessFile f = new RandomAccessFile(new File("two.txt"), "rw");
f.seek(0);
f.write("TEST 1 00001 BCOM".getBytes());
f.close();