bio0604將資料輸入到2進位檔案pdata.txt裡面
import java.io.*;
class bio0604{
public static void main(String[] args) throws IOException
{
DataOutputStream dout= new DataOutputStream (
new BufferedOutputStream(
new FileOutputStream("pdata.txt"))); // set filename
dout.writeChars("M00031"); // output id (String)
dout.writeChar('M'); // output gender (char)
dout.writeInt(85); // output score1 (int)
dout.writeDouble(0.27); // output weight1 (double)
dout.writeInt(76); // output score2 (int)
dout.writeDouble(0.33); // output weight2 (double)
dout.writeInt(81); // output score3 (int)
dout.writeDouble(0.4); // output weight3 (double)
dout.writeChars("M00037"); // output id (String)
dout.writeChar('F'); // output gender (char)
dout.writeInt(62); // output score1 (int)
dout.writeDouble(0.27); // output weight1 (double)
dout.writeInt(54); // output score2 (int)
dout.writeDouble(0.33); // output weight2 (double)
dout.writeInt(50); // output score3 (int)
dout.writeDouble(0.4); // output weight3 (double)
dout.flush();
dout.close();
}
}
bout0604從pdata.txt將2進位檔案解析並印出
import java.io.*;
class bout0604{
public static void main(String[] args) throws IOException
{
DataInputStream din= new DataInputStream (
new BufferedInputStream(
new FileInputStream("pdata.txt"))); // set filename
char[] in=new char[6];
char gen,star;
int sc1,sc2,sc3;
double w1,w2,w3,fin;
String ss;
for(int i=0;i<6;i++) in[i]=din.readChar(); // output id (String)
gen=din.readChar(); // output gender (char)
sc1=din.readInt(); // output score1 (int)
w1=din.readDouble(); // output weight1 (double)
sc2=din.readInt(); // output score2 (int)
w2=din.readDouble(); // output weight2 (double)
sc3=din.readInt(); // output score3 (int)
w3=din.readDouble(); // output weight3 (double)
ss= new String(in);
if(gen=='M') star='*';
else star=' ';
fin=(int)((sc1*w1+sc2*w2+sc3*w3)*100)/100.0;
System.out.println(ss+star+" "+sc1+" "+sc2+" "+sc3+" "+fin);
for(int i=0;i<6;i++) in[i]=din.readChar(); // output id (String)
gen=din.readChar(); // output gender (char)
sc1=din.readInt(); // output score1 (int)
w1=din.readDouble(); // output weight1 (double)
sc2=din.readInt(); // output score2 (int)
w2=din.readDouble(); // output weight2 (double)
sc3=din.readInt(); // output score3 (int)
w3=din.readDouble(); // output weight3 (double)
ss= new String(in);
if(gen=='M') star='*';
else star=' ';
fin=(int)((sc1*w1+sc2*w2+sc3*w3)*100)/100.0;
System.out.println(ss+star+" "+sc1+" "+sc2+" "+sc3+" "+fin);
din.close();
}
}
以上為兩比資料分為同時寫入pdata.txt以及同時讀出,以下合併成一個程式碼
import java.io.*;
class bfix0604{
public static void main(String[] args) throws IOException
{
DataOutputStream dout= new DataOutputStream (
new BufferedOutputStream(
new FileOutputStream("pdata.txt"))); // set filename
dout.writeChars("M00031"); // output id (String)
dout.writeChar('M'); // output gender (char)
dout.writeInt(85); // output score1 (int)
dout.writeDouble(0.27); // output weight1 (double)
dout.writeInt(76); // output score2 (int)
dout.writeDouble(0.33); // output weight2 (double)
dout.writeInt(81); // output score3 (int)
dout.writeDouble(0.4); // output weight3 (double)
dout.writeChars("M00037"); // output id (String)
dout.writeChar('F'); // output gender (char)
dout.writeInt(62); // output score1 (int)
dout.writeDouble(0.27); // output weight1 (double)
dout.writeInt(54); // output score2 (int)
dout.writeDouble(0.33); // output weight2 (double)
dout.writeInt(50); // output score3 (int)
dout.writeDouble(0.4); // output weight3 (double)
dout.flush();
dout.close();
DataInputStream din= new DataInputStream (
new BufferedInputStream(
new FileInputStream("pdata.txt"))); // set filename
char[] in=new char[6];
char gen,star;
int sc1,sc2,sc3;
double w1,w2,w3,fin;
String ss;
for(int i=0;i<6;i++) in[i]=din.readChar(); // output id (String)
gen=din.readChar(); // output gender (char)
sc1=din.readInt(); // output score1 (int)
w1=din.readDouble(); // output weight1 (double)
sc2=din.readInt(); // output score2 (int)
w2=din.readDouble(); // output weight2 (double)
sc3=din.readInt(); // output score3 (int)
w3=din.readDouble(); // output weight3 (double)
ss= new String(in);
if(gen=='M') star='*';
else star=' ';
fin=(int)((sc1*w1+sc2*w2+sc3*w3)*100)/100.0;
System.out.println(ss+star+" "+sc1+" "+sc2+" "+sc3+" "+fin);
for(int i=0;i<6;i++) in[i]=din.readChar(); // output id (String)
gen=din.readChar(); // output gender (char)
sc1=din.readInt(); // output score1 (int)
w1=din.readDouble(); // output weight1 (double)
sc2=din.readInt(); // output score2 (int)
w2=din.readDouble(); // output weight2 (double)
sc3=din.readInt(); // output score3 (int)
w3=din.readDouble(); // output weight3 (double)
ss= new String(in);
if(gen=='M') star='*';
else star=' ';
fin=(int)((sc1*w1+sc2*w2+sc3*w3)*100)/100.0;
System.out.println(ss+star+" "+sc1+" "+sc2+" "+sc3+" "+fin);
din.close();
}
}
沒有留言:
張貼留言