我正在研究Java代码,将数据从一个csv文件复制到另一个csv文件中。
要求是在特定路径中上传的文件(多个文件)必须一次一个地复制到另一个位置的另一个csv文件(比如tag.csv)。后面的tag.csv将被拾取通过shell脚本连接到Oracle DB以运行存储过程。所有这些都会重复执行,直到处理完所有上载的文件并分别为每个文件触发shell脚本。
现在我陷入了复制csv数据的困境。 我曾尝试使用缓冲读取器,文件写入器等,但我无法将数据复制到tag.csv,但我可以阅读它们。
因为我是java新手,我很难理解我哪里出错了。 非常感谢帮助。
答案 0 :(得分:1)
您只需使用Java 7 NIO2:
例如:
如果要将文件从一个位置复制到另一个位置,只需调用:
Files.copy(fromPath, toPath);
如果你想搬家:
Files.move(fromPath, toPath);
使用Java 7功能,您不需要为文件处理编写硬代码。希望有所帮助。
<强>编辑:强>
但是您的要求不是文件复制,而是要将上载的文件内容写入现有文件,您也可以简单地使用Java 7 NIO2功能。
的例如强>
private static void writeFileAsAppend() throws IOException {
List<String> lines = readFileAsSequencesOfLines();
Path path = getWriteFilePath();
Files.write(path, lines, StandardOpenOption.APPEND);
}
private static List<String> readFileAsSequencesOfLines() throws IOException {
Path path = getReadFilePath();
List<String> lines = Files.readAllLines(path);
return lines;
}
private static Path getReadFilePath() {
Path path = Paths
.get(".\\ReadMe.csv");
return path.normalize();
}
private static Path getWriteFilePath() {
Path path = Paths
.get(".\\WriteMe.csv");
return path;
}