国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java實現文件讀寫與壓縮實例

2019-11-26 15:28:29
字體:
來源:轉載
供稿:網友

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

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文件,現在按字節讀入:        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); // 這里是按字節輸出,中文字符無法正常輸出,因為一個中文字符時兩個字節。              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();// 讀完之后要關閉文件            f12.close();// 讀完之后要關閉文件          } 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文件,現在按字節讀入:       int a = 0;    // 輸出流        File f21 = new File("D:" + s + "testFile" + s + "test1.txt");   // 定義一個新的文件f21,然后判斷在這一目錄下是否存在,如果不存在,則創建之。       if (!f21.exists()) {      f21.getParentFile().mkdirs();      try {        f21.createNewFile();        // 將“Welcome.java”的內容復制到f21                 FileOutputStream fos = new FileOutputStream(f21);        FileInputStream fis = new FileInputStream("D:" + s + "Welcome.java");// 讀入“Welcome.java”文件                 while ((a = fis.read()) != -1)          fos.write(a);// 將讀入的內存寫到fos中,現在得到的test1.txt就是復制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文件,現在按字節讀入:        int a = 0, counter = 0;    // 緩沖字符,實現高效寫入        // 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的內容:");      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();  }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永顺县| 旬邑县| 岳西县| 金湖县| 高密市| 西安市| 辽中县| 深州市| 北票市| 济阳县| 澄江县| 济宁市| 方城县| 太仆寺旗| 林西县| 刚察县| 永福县| 甘谷县| 顺昌县| 墨竹工卡县| 平乐县| 葫芦岛市| 华亭县| 大安市| 柳林县| 石柱| 彰武县| 营口市| 永仁县| 仁化县| 武宁县| 乌兰县| 沅江市| 庐江县| 普定县| 无极县| 北票市| 香河县| 曲水县| 秭归县| 双牌县|