2017-08-19 18 views
0

私はinitを読みたいzipファイル(jarファイル内)を持っています。 私はgetResourceAsStream(...)を使って簡単にtxtファイルを読むことができると理解しています。 しかし、今私はどのようにZipファイルのためにそれを行うだろう。jarファイル内のzipファイルを読む方法

私のコードは以下の通りですが、コードを実行可能なjarにエクスポートして実行すると、 "URIではなく階層的なエラー"が表示されます。

URL fileLocation = ChemicalSynonyms.class.getClassLoader().getResource("sciome/workbench/resources/chemicalSynonym/" + strFileName); 
     File file = new File(fileLocation.toURI()); 

     // it is a zip file 
     ZipFile zipFile = new ZipFile(file); 
     Enumeration<? extends ZipEntry> entries = zipFile.entries(); 
     ZipEntry entry = entries.nextElement(); 
     InputStream is = zipFile.getInputStream(entry); 
     BufferedReader buf = new BufferedReader(new InputStreamReader(is)); 
     String lineJustFetched = null; 
     String[] wordsArray; 

     // read each line 
     lineJustFetched = buf.readLine(); 
+0

どのラインでエラーが発生していますか? – ssc327

+0

最初の行。私はtxtファイルを知っている、getresourceの代わりにgetresourceasstreamする必要がありますが、私はどのように私はzipファイルを扱うだろうか分からない – user1631306

+0

あなたはリソースファイルのストリームをロードしてZipFileクラスに接続できませんか?あるいは、ファイルシステムに一時ファイルを作成してからロードしてください。 –

答えて

0

スキャナを使用して行うことができます。例:

 InputStream is = MainClass.class.getClassLoader().getResourceAsStream(file location with zip file name); 
     ZipInputStream zis = new ZipInputStream(is); 
     ZipEntry ze = zis.getNextEntry(); 
     Scanner sc = new Scanner(zis); 

     String[] wordsArray; 
     while (sc.hasNextLine()) 
     { 
      .... 
     } 
関連する問題