日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

用Java读取/写入压缩和非压缩文件

發(fā)布時(shí)間:2023/12/3 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用Java读取/写入压缩和非压缩文件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這篇文章的主要原因是嘗試不重復(fù)自己( DRY ),因?yàn)橥ǔ?#xff0c;我會(huì)遇到讀寫壓縮和非壓縮文件(主要是JSON和CSV)的遞歸需求。

首先讓我們看看如何讀取文本文件。 注意我正在使用(相對(duì)較小的)文本文件,因此:

  • read方法返回一個(gè)包含全部內(nèi)容的String。
  • 我正在使用BufferedReader逐行讀取。
  • private String readFile(String fileName) {StringBuilder sb = new StringBuilder();try {BufferedReader input = new BufferedReader(new FileReader(new File(fileName)));try {String line = null;while ((line = input.readLine()) != null) {sb.append(line);}} finally {input.close();}} catch (IOException ex) {// Handle exceptionreturn null;}return sb.toString(); }

    注意:做事的方法不只一種。 在條目讀取文本文件的最佳方式中 ,您可以找到許多不同的方法來讀取文本文件,具體取決于您的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} }

    要讀取/寫入帶有二進(jìn)制數(shù)據(jù)的壓縮文件,我們需要使用流和緩沖區(qū)。 因此,要讀取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} }

    資源資源

    接下來,您可以找到幾個(gè)適用于各種JDK版本的Java代碼的重要鏈接:

    • 讀寫文本文件
    • 讀寫二進(jìn)制文件

    翻譯自: https://www.javacodegeeks.com/2015/01/readingwriting-compressed-and-not-compressed-files-in-java.html

    總結(jié)

    以上是生活随笔為你收集整理的用Java读取/写入压缩和非压缩文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。