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

首頁 > 編程 > Java > 正文

Java對文件的隨機讀寫以及壓縮處理操作

2019-11-26 14:56:52
字體:
來源:轉載
供稿:網友

Java中文件的隨機讀寫
Java.io 包提供了 RandomAccessFile 類用于隨機文件的創建和訪問。使用這個類,可以跳轉到文件的任意位置讀寫數據。程序可以在隨機文件中插入數據,而不會破壞該文件的其他數據。此外,程序也可以更新或刪除先前存儲的數據,而不用重寫整個文件。

RandomAccessFile類是Object類的直接子類,包含兩個主要的構造方法用來創 建RandomAccessFile 的對象,如表所示。

需要注意的是,mode 表示所創建的隨機讀寫文件的操作狀態,其取值包括:
r:表示以只讀方式打開文件。
rw:表示以讀寫方式打開文件,使用該模式只用一個對象即可同時實現讀寫操作。

下表列出了 RandowAccessFile 類常用的方法及說明。

【例】模仿系統日志,將數據寫入到文件尾部。

import java.io.*;class ep10_12{  public static void main(String args[]) throws IOException{    try{      BufferedReader in=new BufferedReader(new InputStreamReader(System.in));      String s=in.readLine();      RandomAccessFile myFile=new RandomAccessFile("ep10_12.log","rw");      myFile.seek(myFile.length()); //移動到文件結尾      myFile.writeBytes(s+"/n"); //寫入數據      myFile.close();    }    catch(IOException e){}  }}

程序運行后在目錄中建立一個 ep10_12.log 的文件,每次運行時輸入的內容都會在該文件內容的結尾處添加。

Java中文件的壓縮處理
Java.util.zip 包中提供了可對文件的壓縮和解壓縮進行處理的類,它們繼承自字節流類OutputSteam 和 InputStream。其中 GZIPOutputStream 和 ZipOutputStream 可分別把數據壓縮成 GZIP 和 Zip 格式,GZIPInpputStream 和 ZipInputStream 又可將壓縮的數據進行還原。

將文件寫入壓縮文件的一般步驟如下:
生成和所要生成的壓縮文件相關聯的壓縮類對象。
壓縮文件通常不只包含一個文件,將每個要加入的文件稱為一個壓縮入口,使用ZipEntry(String FileName)生成壓縮入口對象。
使用 putNextEntry(ZipEntry entry)將壓縮入口加入壓縮文件。
將文件內容寫入此壓縮文件。
使用 closeEntry()結束目前的壓縮入口,繼續下一個壓縮入口。

將文件從壓縮文件中讀出的一般步驟如下:
生成和所要讀入的壓縮文件相關聯的壓縮類對象。
利用 getNextEntry()得到下一個壓縮入口。

【例】輸入若干文件名,將所有文件壓縮為“ep10_13.zip”,再從壓縮文件中解壓并顯示。

import java.io.*;import java.util.*;import java.util.zip.*;class ep10_13{  public static void main(String args[]) throws IOException{    FileOutputStream a=new FileOutputStream("ep10_13.zip");    //處理壓縮文件    ZipOutputStream out=new ZipOutputStream(new BufferedOutputStream(a));    for(int i=0;i<args.length;i++){ //對命令行輸入的每個文件進行處理      System.out.println("Writing file"+args[i]);      BufferedInputStream in=new BufferedInputStream(new FileInputStream(args[i]));      out.putNextEntry(new ZipEntry(args[i])); //設置 ZipEntry 對象      int b;      while((b=in.read())!=-1)        out.write(b); //從源文件讀出,往壓縮文件中寫入      in.close();    }    out.close();    //解壓縮文件并顯示    System.out.println("Reading file");    FileInputStream d=new FileInputStream("ep10_13.zip");    ZipInputStream inout=new ZipInputStream(new BufferedInputStream(d));    ZipEntry z;    while((z=inout.getNextEntry())!=null){ //獲得入口      System.out.println("Reading file"+z.getName()); //顯示文件初始名      int x;      while((x=inout.read())!=-1)        System.out.write(x);      System.out.println();    }    inout.close();  }}

運行后,在程序目錄建立一個 ep10_13.zip 的壓縮文件,使用解壓縮軟件(如 WinRAR等),可以將其打開。命令提示符下,程序運行結果如圖所示:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永济市| 新和县| 竹北市| 惠安县| 溧阳市| 马山县| 栾川县| 永济市| 台南县| 博白县| 梅州市| 都匀市| 砚山县| 镇雄县| 盐亭县| 阆中市| 静海县| 罗江县| 且末县| 信阳市| 固安县| 昌乐县| 互助| 潮州市| 定襄县| 石狮市| 宿迁市| 磐安县| 临颍县| 万荣县| 汝州市| 集安市| 沈阳市| 大名县| 新源县| 南安市| 利辛县| 嘉鱼县| 平湖市| 永清县| 桦川县|