我有一个XML文件,如下所示
<?xml version="1.0" encoding="ISO-8859-1"?>
<CATALOG>
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>light Belgian waffles covered with strawberries and
whipped cream
</description>
<calories>900</calories>
</food>
</CATALOG>
我需要使用java
编程将此文件复制到另一个文件。以下是我复制文件的java代码
try {
File f1 = new File("source.xml");
File f2 = new File("destination.xml");
InputStream in = new FileInputStream(f1);
OutputStream out = new FileOutputStream(f2);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
System.out.println("File copied.");
} catch (FileNotFoundException ex) {
System.out
.println(ex.getMessage() + " in the specified directory.");
System.exit(0);
} catch (IOException e7) {
System.out.println(e7.getMessage());
}
此代码复制文件,但问题是将源文件的所有内容复制到一行,我需要保留源文件的原始结构。 任何人都有更好的想法来复制文件并保持其原始结构? 谢谢
答案 0 :(得分:1)
Java有一个名为NIO的新软件包,它将为您简化很多事情。还有Apache Commons IO。我建议您切换到其中任何一个,以提高性能和简化代码。
示例:
import java.io.File;
import java.nio.file.Path;
...
String orig ="file.xml";
String dest = "file.xml.bak";
File f = new File (orig);
Path p = f.toPath();
p.copyTo(new File (dest).toPath(), REPLACE_EXISTING, COPY_ATTRIBUTES);
或
import java.file.io;
import org.apache.commons.io.FileUtils;
....
String orig ="file.xml";
String dest = "file.xml.bak";
File fOrig = new File(orig);
File fDest = new File(dest);
FileUtils.copyFile(fOrig, fDest);
答案 1 :(得分:1)
尝试使用 BufferedReader 来使用 readLine()功能逐行阅读。然后使用BufferedWriter编写该行,然后使用其 newLine()函数追加换行符。
这应该可以解决问题。