将新创建的.csv文件保存到特定目录位置/包- Java

y0u0uwnf  于 2023-04-19  发布在  Java
关注(0)|答案(1)|浏览(176)

自动化测试并需要将csv保存到已经连接好的某个位置以供下一步使用。

if (bulkJobType.equalsIgnoreCase("IP_REMOVAL")) {
            ipFileName = "IP_REMOVAL" + dtf.format(dateTimeNow) + "ip.csv";
            FileWriter fw = new FileWriter(ipFileName);
            try (PrintWriter pw = new PrintWriter(new FileWriter(ipFileName))) {
                pw.write("IP_REMOVAL");
                pw.write(System.getProperty("line.separator"));
                pw.write a few other proprietary attributes
            }

我知道100%,这工程,因为我有几个正确格式化的非版本化文件,只是没有在正确的地方,在文件结构。
文件结构:

name
├── build
├── src
│   ├── test
│       └─java (csv creation happens in here btw)
│       └─resources
│          └─*FOLDER I WANT CSV TO SAVE IN *
│            └─IP_REMOVAL.CSV
├── *WHERE CSV IS ACTUALLY SAVING*`

我已经尝试了几个其他的堆栈溢出线程,但不能让这个工作。我觉得有点奇怪,我不能只是指定一个相对路径,我想保存新创建的csv
任何帮助感激
所有其他SO帖子。这一个FileWriter fw = new FileWriter(new File(dir,str));
似乎是最有希望的,但运气不好

bt1cpqcv

bt1cpqcv1#

如果不指定本地文件系统的完整路径**,则无法保存到运行时**中的资源文件夹。
当你这样做的时候

ipFileName = "IP_REMOVAL" + dtf.format(dateTimeNow) + "ip.csv";

相当于

ipFileName = "<project_root>IP_REMOVAL" + dtf.format(dateTimeNow) + "ip.csv";

如果您尝试保存到资源文件夹,它将在target/classes/中,而不是您所想的源代码资源文件夹中。
你可以做的是,正如在开始时提到的,给出资源文件的完整路径,如src/main/resources/folder。另外,不要忘记在写入之前创建目录和文件。

相关问题