【问题标题】:Needs to access csv files in src/test/resource folder需要访问 src/test/resource 文件夹中的 csv 文件
【发布时间】:2019-01-25 07:12:26
【问题描述】:

我需要从 src/test/resource 文件夹中读取 CSV 文件。

我在根级别提供了文件,它工作正常。但我想把所有这些文件放在 src/test/resource 文件夹中。

String fileName = "Phone_valid.csv";
File srcFile = new File(fileName);
String path = srcFile .getAbsolutePath();

// path = C:\D Drive\Orange Codebase\dabek-data-processing\Phone_valid.csv


String fileName = "\\src\\main\\resource\\Phone_invalid.csv";
File srcFile = new File(fileName);
String path = srcFile .getAbsolutePath();

// path= "C:\src\main\resource\Phone_invalid.csv"


I want that path should be 
path = C:\D Drive\Orange Codebase\dabekdataprocessing\\src\main\resource\Phone_invalid.csv

【问题讨论】:

    标签: java spring-boot spring-batch classloader


    【解决方案1】:

    删除第一个反斜杠。这行得通吗?

    String fileName = "src\\main\\resource\\Phone_invalid.csv";
    

    【讨论】:

    • 您想访问测试文件夹中的文件。这意味着您必须在测试上下文中运行它。在src/test/java 而不是src/main/java 下运行你的代码怎么样?
    • 你说'删除斜线不起作用'。你期望什么输出?你收到什么输出?
    • 实际上我得到了 path="C:\src\main\resource\Phone_invalid.csv" 但我需要 C:\D Drive\Orange Codebase\dabekdataprocessing\\src\main\resource\Phone_invalid .csv。
    • 如果您使用建议的文件名(“src\\main\\resource\\Phone_invalid.csv”),它会打印什么?你的工作目录是什么?
    【解决方案2】:

    这应该可行。

    File file= new File("src/test/resources/filename.txt");
    

    注意避免在目录名称中使用空格,例如Orange Codebase

    【讨论】:

      【解决方案3】:

      试试这个代码

      import java.io.File;
      
      public class MyClass {
      
          public static void main(String[] args) {
              String fileName = "src\\main\\resource\\Phone_invalid.csv";
              File srcFile = new File(fileName);
              String path = srcFile .getAbsolutePath();
              System.out.println("Path: "+path);
          }
      }
      

      以上代码的输出将是..

      Path: E:\Orange Codebase\dabekdataprocessing\src\main\resource\Phone_invalid.csv
      

      【讨论】:

        【解决方案4】:

        我使用下面的代码实现了同样的效果

        String phonePath= "src/test/resources/Phone_valid.csv";
        File srcFile = new FileSystemResource(phonePath).getFile();
        
        String path = srcFile.getAbsolutePath();
        
        // path = C:\D Drive\Orange Codebase\dabekdataprocessing\src\test\resources\Phone_valid.csv.
        

        现在,我可以访问 src/test/resources 文件夹中的文件了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-05-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-05-01
          • 2016-03-27
          • 2016-05-07
          相关资源
          最近更新 更多