?? bytefile.java
字號:
//【例9.2】 使用文件字節輸入輸出流實現文件的輸入輸出操作。
import java.io.*;
public class ByteFile
{
private String filename; //文件名
public ByteFile(String filename) //構造方法,指定文件名
{
this.filename = filename;
}
public void writeToFile(byte[] buffer) throws IOException //將緩沖區數據寫入指定文件
{
FileOutputStream fout = new FileOutputStream(this.filename); //為指定文件創建文件輸出流對象
fout.write(buffer); //將指定字節緩沖區中數據寫入輸出流
fout.close(); //關閉輸出流
System.out.println("Write to File "+this.filename);
}
public void readFromFile() throws IOException //將指定文件中的數據讀到緩沖區
{
FileInputStream fin = new FileInputStream(this.filename); //為指定文件創建文件輸入流對象
System.out.println("readFromFile "+this.filename);
byte[] buffer = new byte[512]; //字節緩沖區
int count=0;
do
{
count = fin.read(buffer); //讀取輸入流
System.out.println("count = "+count);
for(int i=0;i<count;i++)
System.out.print(buffer[i]+" ");
System.out.println();
}while (count!=-1); //輸入流未結束時
fin.close(); //關閉輸入流
}
public void copyFile(String filename2, boolean append) throws IOException //復制文件
{ //將當前文件內容復制到filename2指定文件中,append指定添加或重寫方式
FileInputStream fin = new FileInputStream(this.filename); //創建文件輸入流對象
FileOutputStream fout = new FileOutputStream(filename2, append); //創建文件輸出流對象
byte[] buffer = new byte[512]; //字節緩沖區
int count=0;
do
{
count = fin.read(buffer); //讀取輸入流
if (count != -1)
fout.write(buffer); //寫入輸出流
}while (count!=-1);
fin.close(); //關閉輸入流
fout.close(); //關閉輸出流
System.out.println("Copyfile from "+this.filename+" to "+filename2);
}
public void copyFile(String filename2) throws IOException //重寫方式復制文件,方法重載
{
copyFile(filename2, false);
}
public static void main(String args[]) throws IOException
{
byte[] buffer = {0,1,2,3,4,5,6,7,8,9};
ByteFile afile = new ByteFile("ByteFile.dat");
afile.writeToFile(buffer);
afile.readFromFile();
afile.copyFile("ByteFile2.dat");
}
}
/*
程序運行結果如下:
Write to File ByteFile.dat
readFromFile ByteFile.dat
count = 10
0 1 2 3 4 5 6 7 8 9
count = -1
Copyfile from ByteFile.dat to ByteFile2.dat
程序設計錯誤說明如下:
1、無參數的構造方法有錯,編譯時不通過,因為類中沒有聲明。
AccessFile afile = new AccessFile();
2、構造方法有參數,但文件名為空串,運行時拋出異常FileNotFoundException(No such file or directroy) 。
AccessFile afile = new AccessFile("");
*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -