用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读取/写入压缩和非压缩文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机网速变慢(手机网速变慢是不是中病毒了
- 下一篇: 小米汽车即将问世 雷军已投入55亿元资金