2016-02-01 2 views
0

У меня есть файл tsv в пути класса проекта, который я пытаюсь прочитать с помощью метода getResource(). Мой код заключается в следующем:Чтение файла tsv из jar

File file=new File(ClassName.class.getResource("/folder/myfile.tsv").getFile()); 
    CSVReader reader=new CSVReader(new FileReader(file),'\t'); 

Поэтому, когда я запускаю код я получаю сообщение:

java.io.FileNotFoundException: \folder\myfile.tsv (The system cannot find the path specified) 
at java.io.FileInputStream.open(Native Method) 
at java.io.FileInputStream.<init>(Unknown Source) 
at java.io.FileReader.<init>(Unknown Source) 

Что может быть проблема?

+0

Какой полный путь к файлу? – DominicEU

+0

Папка находится внутри директивы src проектов. – Vegeta

+0

Это внутри папки ресурсов? – DominicEU

ответ

1

Никогда не используйте getResource, чтобы получить ссылку на файл, который упакован с вашими классами Java, потому что ресурс может быть внутри файла JAR или WAR во время выполнения.

Используйте следующие вместо:

InputStream is = ClassName.class.getResourceAsStream("/folder/myfile.tsv"); 
CSVReader reader=new CSVReader(is, '\t', StandardCharsets.UTF_8); 
+0

Спасибо, это решило мою проблему. – Vegeta