/**
* 二進制讀寫文件
*/
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class MainClass
{
/**
* java.io包中的OutputStream及其子類專門用于寫二進制數(shù)據(jù)皆撩。
* FileOutputStream是其子類,可用于將二進制數(shù)據(jù)寫入文件哲银。
* DataOutputStream是OutputStream的另一個子類扛吞,它可以
* 連接到一個FileOutputStream上,便于寫各種基本數(shù)據(jù)類型的數(shù)據(jù)荆责。
*/
public void writeMethod1()
{
String fileName="c:/kuka1.dat";
int value0=255;
int value1=0;
int value2=-1;
try
{
//將DataOutputStream與FileOutputStream連接可輸出不同類型的數(shù)據(jù)
//FileOutputStream類的構(gòu)造函數(shù)負責打開文件kuka.dat滥比,如果文件不存在,
//則創(chuàng)建一個新的文件草巡,如果文件已存在則用新創(chuàng)建的文件代替守呜。然后FileOutputStream
//類的對象與一個DataOutputStream對象連接型酥,DataOutputStream類具有寫
//各種數(shù)據(jù)類型的方法山憨。
DataOutputStream out=new DataOutputStream(new FileOutputStream(fileName));
out.writeInt(value0);
out.writeInt(value1);
out.writeInt(value2);
out.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
//對于大量數(shù)據(jù)的寫入,使用緩沖流BufferedOutputStream類可以提高效率
public void writeMethod2()
{
String fileName="c:/kuka2.txt";
try
{
DataOutputStream out=new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream(fileName)));
out.writeInt(10);
System.out.println(out.size()+" bytes have been written.");
out.writeDouble(31.2);
System.out.println(out.size()+" bytes have been written.");
out.writeBytes("JAVA");
System.out.println(out.size()+" bytes have been written.");
out.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 對二進制文件比較常見的類有FileInputStream弥喉,DataInputStream
* BufferedInputStream等郁竟。類似于DataOutputStream,DataInputStream
* 也提供了很多方法用于讀入布爾型由境、字節(jié)棚亩、字符、整形虏杰、長整形讥蟆、短整形、
* 單精度纺阔、雙精度等數(shù)據(jù)瘸彤。
*/
public void readMethod1()
{
String fileName="c:/kuka1.dat";
int sum=0;
try
{
DataInputStream in=new DataInputStream(
new BufferedInputStream(
new FileInputStream(fileName)));
sum+=in.readInt();
sum+=in.readInt();
sum+=in.readInt();
System.out.println("The sum is:"+sum);
in.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
public void readMethod2()
{
try
{
FileInputStream stream=new FileInputStream("c:/kuka.dat");
int c;
while((c=stream.read())!=-1)
{
System.out.println(c);
}
} catch (Exception e)
{
e.printStackTrace();
}
}
}