最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實現(xiàn)文件讀寫與壓縮實例

 更新時間:2014年07月23日 16:16:04   投稿:shichen2014  
這篇文章主要介紹了java實現(xiàn)文件讀寫與壓縮實例,有助于讀者加深對文件操作的理解,需要的朋友可以參考下

本文通過實例講述了Java對文件讀寫與壓縮的實現(xiàn)方法,具體代碼如下:

package com.toone.iform.action.common;

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.Enumeration; 
import java.util.Random; 
import java.util.zip.ZipEntry; 
import java.util.zip.ZipException; 
import java.util.zip.ZipFile;
public class TestFileIO {
  static String s = File.separator;
 
  private static void testInput() {
    // D盤下有個Welcome.java文件,現(xiàn)在按字節(jié)讀入:     
   int a = 0;
    // int counter=0;     
   FileInputStream f11;
    // 輸入流     
   try {
      f11 = new FileInputStream("D:" + s + "Welcome.java");
      while ((a = f11.read()) != -1)
        System.out.print((char) a); // 這里是按字節(jié)輸出,中文字符無法正常輸出,因為一個中文字符時兩個字節(jié)。       
       System.out.println("\n\n--------------------------------------------------\n");
 
      FileReader f12 = new FileReader("D:" + s + "Welcome.java");
      while ((a = f12.read()) != -1)
        System.out.print((char) a);// 這里是按字符輸出,中文字符都可以正常輸出      
       System.out.println("\n\n--------------------------------------------------\n");
 
      f11.close();// 讀完之后要關(guān)閉文件      
      f12.close();// 讀完之后要關(guān)閉文件    
      } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block       
       e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block      
     e.printStackTrace();
    }
  }
 
  private static void testOutput() {
    // D盤下有個Welcome.java文件,現(xiàn)在按字節(jié)讀入:    
   int a = 0;
    // 輸出流     
   File f21 = new File("D:" + s + "testFile" + s + "test1.txt");
   // 定義一個新的文件f21,然后判斷在這一目錄下是否存在,如果不存在,則創(chuàng)建之。    
   if (!f21.exists()) {
      f21.getParentFile().mkdirs();
      try {
        f21.createNewFile();
        // 將“Welcome.java”的內(nèi)容復(fù)制到f21         
        FileOutputStream fos = new FileOutputStream(f21);
        FileInputStream fis = new FileInputStream("D:" + s + "Welcome.java");// 讀入“Welcome.java”文件         
        while ((a = fis.read()) != -1)
          fos.write(a);// 將讀入的內(nèi)存寫到fos中,現(xiàn)在得到的test1.txt就是復(fù)制Welcome.java的
        // writer類        
        FileWriter f22 = new FileWriter("D:" + s + "testFile" + s + "test2.txt");
        for (int i = 0; i < 65535; i++)
          f22.write(i);//寫入到test2.txt中。由這里也可以看出,上面35-38行判斷文件是否存在的語句也可以不要。         
        // 向文件中寫入字符串         
        FileWriter f23 = new FileWriter("D:" + s + "testFile" + s + "test3.txt");
        f23.write("Hello, world!");
 
        fos.close();
        fis.close();
        f22.close();
        f23.close();
      } catch (IOException e) {
        // TODO Auto-generated catch block
         e.printStackTrace();
      }
    }
  }
 
  private static void testBufferring() {
    // D盤下有個Welcome.java文件,現(xiàn)在按字節(jié)讀入:     
   int a = 0, counter = 0;
    // 緩沖字符,實現(xiàn)高效寫入     
   // BufferedWriter f31=new BufferedWriter(newFileWriter("D"+s+"testFile"+s+"test4.txt"));    
   BufferedWriter f31;
    try {
      f31 = new BufferedWriter(new FileWriter("D:" + s + "testFile" + s
          + "test4.txt"));
      for (int i = 1; i <= 100; i++) {
        f31.write(String.valueOf(new Random().nextInt(100)) + " ");
        if (i % 10 == 0)
          f31.newLine();
      }
      f31.flush();// 刷新緩沖      
      f31.close();
 
      BufferedReader f32 = new BufferedReader(new FileReader("D:" + s
          + "testFile" + s + "test4.txt"));
      String s32;
      System.out.println("輸出文件f32的內(nèi)容:");
      while ((s32 = f32.readLine()) != null)
        System.out.println(s32);
      f32.close();
      System.out.println("\n--------------------------------------------------\n");
    } catch (IOException e) {
      // TODO Auto-generated catch block       
     e.printStackTrace();
    }
  }
 
  private static void testZip() {
    try {
      File f1 = new File("D:/test.zip");
      File f2 = new File("D:/testFile/testzip");
      ZipFile zf = new ZipFile(f1);
      testZipToUnzip(zf, f2);
 
    } catch (IOException e) {
      // TODO Auto-generated catch block
       e.printStackTrace();
    }
  }
 
  // 將壓縮包zipfile解壓到file中  
  public static void testZipToUnzip(ZipFile zipfile, File file) {
    ZipEntry zentry = null;
    File zipout;
    InputStream zis = null;
    FileOutputStream fos = null;
    Enumeration e = zipfile.entries();// zipfile的目錄
    while (e.hasMoreElements()) {
      zentry = (ZipEntry) e.nextElement();
      System.out.println(zentry.getName());// zipfile下有哪些文件?可是為什么不按順序輸出??
      // 將解壓后的文件放到file文件夾下:      
      zipout = new File(file + s + zentry.getName());
 
      if (!zentry.isDirectory()) {
        try {
          zis = zipfile.getInputStream(zentry);
          if (!zipout.exists())
            zipout.getParentFile().mkdirs();
          fos = new FileOutputStream(zipout);
          byte[] b = new byte[1024];
          int length;
          while ((length = zis.read(b)) > 0) {
            fos.write(b, 0, length);
          }
          fos.close();
          zis.close();
        } catch (ZipException e1) {
          // TODO Auto-generated catch block           
         e1.printStackTrace();
        } catch (IOException e1) {
          // TODO Auto-generated catch block          
         e1.printStackTrace();
        }
      }
    }
  }
 
  public static void main(String[] args) throws ZipException {
    // TODO Auto-generated method stub
    testInput();
    testOutput();
    testBufferring();
    testZip();
  }
}

相關(guān)文章

  • Java打包ZIP文件的使用

    Java打包ZIP文件的使用

    本文詳細(xì)介紹了如何使用Java語言進(jìn)行ZIP文件的創(chuàng)建、讀取和操作,通過java.util.zip包和第三方庫,可以高效地處理ZIP文件,并應(yīng)用密碼保護(hù)和注釋等高級功能,在實際應(yīng)用中,遵循最佳實踐可以提高程序的健壯性和安全性
    2025-02-02
  • Java?OkHttp框架源碼超詳細(xì)解析

    Java?OkHttp框架源碼超詳細(xì)解析

    okhttp是一個第三方類庫,用于android中請求網(wǎng)絡(luò)。這是一個開源項目,是安卓端最火熱的輕量級框架,由移動支付Square公司貢獻(xiàn)(該公司還貢獻(xiàn)了Picasso和LeakCanary)?。用于替代HttpUrlConnection和Apache?HttpClient
    2022-11-11
  • 解析iReport自定義行數(shù)分頁的操作方法

    解析iReport自定義行數(shù)分頁的操作方法

    ireport默認(rèn)都是自動分頁數(shù)據(jù)超出頁面長度就會自動分到下一頁,但有時候業(yè)務(wù)需要一頁只顯示固定幾行這時候就需要自定義條數(shù)了。下面看具體操作吧
    2021-10-10
  • java開發(fā)RocketMQ消息中間件原理基礎(chǔ)詳解

    java開發(fā)RocketMQ消息中間件原理基礎(chǔ)詳解

    最近 RocketMQ 剛剛上生產(chǎn)環(huán)境,閑暇之時在這里做一些分享,主要目的是讓初學(xué)者能快速上手RocketMQ,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • 電腦上安裝多個JDK版本時該如何自由切換(詳細(xì)圖文)

    電腦上安裝多個JDK版本時該如何自由切換(詳細(xì)圖文)

    我們在學(xué)習(xí)的過程中經(jīng)常用到不同的jdk版本,那么如何在一臺電腦上同時安裝多個jdk版本并進(jìn)行切換呢,這篇文章主要給大家介紹了關(guān)于電腦上安裝多個JDK版本時該如何自由切換的相關(guān)資料,需要的朋友可以參考下
    2023-10-10
  • 一文秒懂Java enum常見的用法講解

    一文秒懂Java enum常見的用法講解

    這篇文章主要介紹了一文秒懂Java enum常見的用法講解,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Java 數(shù)組轉(zhuǎn)List的四種方式小結(jié)

    Java 數(shù)組轉(zhuǎn)List的四種方式小結(jié)

    本文主要介紹了四種將Java數(shù)組轉(zhuǎn)換為List的方法,包括使用Arrays.asList、ArrayList構(gòu)造器、Collections.addAll以及JDK8的Stream,具有一定的參考價值,感興趣的可以了解一下
    2024-10-10
  • SpringBoot3.0整合chatGPT的完整步驟

    SpringBoot3.0整合chatGPT的完整步驟

    ChatGPT是OpenAI推出的一個語言模型系統(tǒng),它能夠?qū)崟r回答用戶提問,包括聊天、糾正語法錯誤,甚至是寫代碼、寫劇本等,由于可玩性很高,迅速在全球范圍內(nèi)風(fēng)靡起來,下面這篇文章主要給大家介紹了關(guān)于SpringBoot3.0整合chatGPT的完整步驟,需要的朋友可以參考下
    2022-12-12
  • Springboot項目與vue項目整合打包的實現(xiàn)方式

    Springboot項目與vue項目整合打包的實現(xiàn)方式

    這篇文章主要介紹了Springboot項目與vue項目整合打包的實現(xiàn)方式,本文通過兩種方式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • Java使用cxf發(fā)布及調(diào)用webservice接口的方法詳解

    Java使用cxf發(fā)布及調(diào)用webservice接口的方法詳解

    今天小編就為大家分享一篇關(guān)于Java使用CXF發(fā)布及調(diào)用WebService接口的方法,文中通過代碼示例給大家介紹的非常詳細(xì),具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2023-08-08

最新評論

柞水县| 丹寨县| 枣阳市| 茶陵县| 广德县| 新昌县| 墨江| 北流市| 泉州市| 武清区| 龙口市| 海南省| 微博| 资源县| 岑溪市| 百色市| 太谷县| 昆山市| 四平市| 繁昌县| 光山县| 南康市| 台中市| 神池县| 日土县| 惠来县| 县级市| 湟源县| 天峨县| 吉首市| 胶南市| 镇江市| 赤峰市| 博野县| 固始县| 玉林市| 平舆县| 通州市| 威宁| 琼海市| 新河县|