java压缩文件读取_用Java读取/写入压缩和非压缩文件
生活随笔
收集整理的這篇文章主要介紹了
java压缩文件读取_用Java读取/写入压缩和非压缩文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
java壓縮文件讀取
這篇文章的主要原因是嘗試不要重復自己( DRY ),因為通常,我會遇到遞歸的需求,即讀寫壓縮的和非壓縮的文件(主要是JSON和CSV)。
首先讓我們看看如何讀取文本文件。 注意我正在使用(相對較小的)文本文件,因此:
注意:做事的方法不只一種。 在條目讀取文本文件的最佳方法中 ,您可以找到許多不同的方法來讀取文本文件,具體取決于您的JDK版本和文件大小。
類似于將String寫入文件:
private void writeFile(String fileName, String value) {try {FileWriter fw = new FileWriter(fileName);BufferedWriter bw = new BufferedWriter(fw);bw.write(value);bw.close();} catch (IOException ex) {// Handle exception} }要讀取/寫入帶有二進制數據的壓縮文件,我們需要使用流和緩沖區。 因此,要讀取GZIP壓縮文件并獲取字符串:
private String readCompressedFile(String fileName) {try {GZIPInputStream gis = new GZIPInputStream(new FileInputStream(fileName));ByteArrayOutputStream fos = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len;while ((len = gis.read(buffer)) != -1) {fos.write(buffer, 0, len);}fos.close();gis.close();return new String(fos.toByteArray());} catch (IOException ex) {// Handle exceptionreturn null;} }并類似地將字符串寫入GZip壓縮文件:
private void writeCompressedFile(String fileName, String value) {try {InputStream is = new ByteArrayInputStream(value.getBytes());GZIPOutputStream gzipOS = new GZIPOutputStream(new FileOutputStream(fileName));byte[] buffer = new byte[1024];int len;while ((len = is.read(buffer)) != -1) {gzipOS.write(buffer, 0, len);}gzipOS.close();is.close();} catch (IOException ex) {// Handle exception} }資源資源
接下來,您可以找到用于各種JDK版本的Java代碼的兩個重要鏈接:
- 讀寫文本文件
- 讀寫二進制文件
翻譯自: https://www.javacodegeeks.com/2015/01/readingwriting-compressed-and-not-compressed-files-in-java.html
java壓縮文件讀取
總結
以上是生活随笔為你收集整理的java压缩文件读取_用Java读取/写入压缩和非压缩文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gradle构建多模块项目_Gradle
- 下一篇: jooq sql_使用jOOQ和Java