2013/11/09

[JAVA] 使用FileInputStream&FileOutputStream讀取寫入二進制檔案

JAVA跟C在檔案IO部分有些不同,C只要在fopen()函數中設定"r"或者"rb"就可以讀取一般文字檔或者是二進制檔案。而JAVA,要讀取二進制檔案就一定得用以下兩個method來實作。

Constructors
FileInputStream(File file)
創造一個讀入檔案file

Methods
int available()
回傳估計檔案的長度
int read(byte[] b)
讀取檔案內容至b的byte陣列中
void close()
關閉讀入檔案

Constructors
FileOutputStream(File file)
創造一個寫入檔案file

Methods
void write(byte[] b)
寫入b的byte陣列資料到檔案中
void close()
關閉寫出檔案




以下為參考程式碼:
用FileInputStream讀取二進制檔案sign_DER.txt並且用FileOutputStream寫入二進制內容至sign_DER_out.txt檔案中。

// JAVA FileInputStream / FileOutputStream
// file_binary.java
import java.io.*;
public class file_binary
{
   public static void main (String[] args) throws IOException
   {
      FileInputStream fi=new FileInputStream("sign_DER.txt");
      FileOutputStream fo=new FileOutputStream("sign_DER_out.txt");
     
      System.out.println("file size="+fi.available());
      byte data[]=new byte[fi.available()];
      fi.read(data);
      fo.write(data);
      System.out.println("file copied and rename");
      fi.close();
      fo.close();
   }
}


沒有留言:

張貼留言