[解決済み] Zip ファイルからコンテンツを読み込む
2023-05-25 12:51:56
質問
ZIPファイル内のファイルを読み込み、内容を抽出する簡単なJavaプログラムを作成しようとしています。Zipファイルには3つのファイル(txt、pdf、docx)が含まれています。私はこれらのファイルすべての内容を読み取る必要があり、私は使用しています。 Apache Tika を使っています。
機能性を達成するために、誰か私を助けてくれませんか。 私はこれまでこれを試しましたが、成功しませんでした。
コードスニペット
public class SampleZipExtract {
public static void main(String[] args) {
List<String> tempString = new ArrayList<String>();
StringBuffer sbf = new StringBuffer();
File file = new File("C:\\Users\\xxx\\Desktop\\abc.zip");
InputStream input;
try {
input = new FileInputStream(file);
ZipInputStream zip = new ZipInputStream(input);
ZipEntry entry = zip.getNextEntry();
BodyContentHandler textHandler = new BodyContentHandler();
Metadata metadata = new Metadata();
Parser parser = new AutoDetectParser();
while (entry!= null){
if(entry.getName().endsWith(".txt") ||
entry.getName().endsWith(".pdf")||
entry.getName().endsWith(".docx")){
System.out.println("entry=" + entry.getName() + " " + entry.getSize());
parser.parse(input, textHandler, metadata, new ParseContext());
tempString.add(textHandler.toString());
}
}
zip.close();
input.close();
for (String text : tempString) {
System.out.println("Apache Tika - Converted input string : " + text);
sbf.append(text);
System.out.println("Final text from all the three files " + sbf.toString());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TikaException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
どのように解決するのですか?
もし、ファイルの内容を各
ZipEntry
からファイルの内容を取得する方法を知りたいのであれば、 それは実はとても簡単です。以下はサンプルコードです。
public static void main(String[] args) throws IOException {
ZipFile zipFile = new ZipFile("C:/test.zip");
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while(entries.hasMoreElements()){
ZipEntry entry = entries.nextElement();
InputStream stream = zipFile.getInputStream(entry);
}
}
InputStreamを手に入れたら、それを好きなように読むことができます。
関連
-
実行中にEclipseがポップアップする A Java Exception has occurred
-
executeQuery()でデータ操作文が発行できない。解決方法
-
強制型変換について
-
SocketException java.netの4つの例外解決策。
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
Server Tomcat v9.0 Server at localhost の起動に失敗しました。
-
java 365*1000*60*60*24 計算問題
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] Javaからフォルダ内の全ファイルを読み込むには?
-
[解決済み】zlib、gzip、zipはどのように関係していますか?これらの共通点と相違点は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
実行中にEclipseがポップアップする A Java Exception has occurred
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
NullPointerException - java.lang.
-
undefined[sonar] sonar:デフォルトのスキャンルール
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
Jsoup-Crawlingの動作
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
Java基礎 - マッピングとQ/A
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
ApiModel と @ApiModelProperty の使用法