簡體   English   中英

使用getResources時未找到FileSystem異常

[英]FileSystem not found exception when using getResources

我對getResources的概念非常迷失

我已經將一個簡單的文本文件放在bin文件夾中,我希望將其作為資源進行訪問,以便隨后進行構建和部署。 但是,當我嘗試運行jar文件時,出現文件未找到錯誤,我認為這取決於我如何訪問資源。 誰能給我一些使用方法的指導。

public class Iterator {
    static ArrayList<String> myFiles = new ArrayList<String>();
    static URL filename= Iterator.class.getResource("/Files/FilesLogged.txt");
    static String folderName;
    static Path p;

    public Iterator() { }

    public static void main(String[] args) throws IOException, SAXException, TikaException, SQLException, ParseException, URISyntaxException, BackingStoreException {       

        Preferences userPrefs = Preferences.userNodeForPackage(TBB_SQLBuilder.class);

        p = Paths.get(filename.toURI());
        //This iterates through each of the files in the specified folder and copies them to a log. 
        //It also checks to see if that file has been read already so that it isn't re-inputted into the database if run again               
        //Loop through the ArrayList with the full path names of each folder in the outer loop
        for (String line : Files.readAllLines(p)){
            myFiles.add(line);
        }   
    }
}

我得到的錯誤

Exception in thread "main" java.nio.file.FileSystemNotFoundException
at com.sun.nio.zipfs.ZipFileSystemProvider.getFileSystem(ZipFileSystemProvider.java:171)
at com.sun.nio.zipfs.ZipFileSystemProvider.getPath(ZipFileSystemProvider.java:157)
at java.nio.file.Paths.get(Paths.java:143)
at Overview.Iterator.main(Iterator.java:46)

**使用@BorisTheSpiders回答進行編輯

public class Iterator {
    static ArrayList<String> myFiles = new ArrayList<String>();

    static URL filename= Iterator.class.getResource("/Files/FilesLogged.txt");
    static String folderName;
    static Path p;
    public Iterator() {
    }

    public static void main(String[] args) throws IOException, SAXException, TikaException, SQLException, ParseException, URISyntaxException, BackingStoreException {       

        Preferences userPrefs = Preferences.userNodeForPackage(TBB_SQLBuilder.class);
        InputStream in = filename.openStream( );
        BufferedReader reader = new BufferedReader( new InputStreamReader( in ) );
             p = Paths.get(filename.toURI());
            //This iterates through each of the files in the specified folder and copies them to a log. 
            //It also checks to see if that file has been read already so that it isn't re-inputted into the database if run again               
            //Loop through the ArrayList with the full path names of each folder in the outer loop
            for (String line : Files.readAllLines(p)){
                myFiles.add(line);
            }               

但是我不太確定如何使用閱讀器為uri提供Paths.get 我想我可能不了解這里的基本知識...

如評論中所指出,在文件系統中找不到相關文件。

建議,嘗試更換

static URL filename= Iterator.class.getResource("/Files/FilesLogged.txt");

static InputStream is = Iterator.class.getResourceAsStream("/Files/FilesLogged.txt");

以及使用以下命令讀取文件的塊:

try (Scanner scanner = new Scanner(is)) {
   while(scanner.hasNextLine()){
        String line = scanner.nextLine();
        myFiles.add(line);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM