【问题标题】:Copy data from one csv file to another csv file using java使用java将数据从一个csv文件复制到另一个csv文件
【发布时间】:2018-09-29 19:30:06
【问题描述】:

我正在编写 Java 代码以将数据从一个 csv 文件复制到另一个 csv 文件中。

要求是必须将在特定路径中上传的文件(多个文件)一次复制一个到另一个位置的另一个 csv 文件(例如 tag.cs​​v)中。稍后将提取 tag.cs​​v通过 shell 脚本连接到 Oracle DB 以运行存储过程。所有这些都重复完成,直到处理完所有上传的文件并分别为每个文件触发 shell 脚本。

现在我陷入了复制 csv 数据的困境。 我尝试过使用缓冲读取器、文件写入器等,但我无法将数据复制到 tag.cs​​v,但我可以读取它们。

由于我是 java 新手,我很难理解我哪里出错了。 非常感谢您的帮助。

【问题讨论】:

标签: java csv filereader filewriter opencsv


【解决方案1】:

您可以简单地使用 Java 7 NIO2:

例如:
如果您想将文件从一个位置复制到另一个位置,只需调用:

Files.copy(fromPath, toPath);

如果你想搬家:

Files.move(fromPath, toPath);

借助 Java 7 功能,您无需为文件处理编写硬代码。
希望对您有所帮助。

Java 7 NIO2 Tutorial Link

已编辑:
但是您的要求不是文件复制,而是要将上传的文件内容写入现有文件,您也可以简单地使用 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;
}

【讨论】:

  • 听起来不错。如果您对此感到满意,请考虑正确答案。
猜你喜欢
  • 2021-09-30
  • 2022-01-04
  • 1970-01-01
  • 2015-11-21
  • 1970-01-01
  • 2021-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多