JAVA基本輸入輸出流的幾種用法(3)——以簡單商品管理系統爲例
DataOutputStream與DataInputStream的使用
package Commodity_System;
import java.io.*;
import java.lang.String;
import java.util.ArrayList;
public class Commodity5 {
public static void main(String args[])throws IOException{
String[] Name0 = new String[]{"aaa","bbb","ccc","ddd","eee","fff"};
String[] Price0 = new String[]{"9.99","19.99","29.99","49.99","99.99","199.99"};
String[] Number0 = new String[]{"10","15","45","24","7","51"};
int len0 = Name0.length;
DataOutputStream outp = new DataOutputStream(new FileOutputStream("Commodity.txt"));
int i = 0;
for(i=0;i<len0;i++){
outp.writeBytes(Name0[i] + " ");
outp.writeBytes(Price0[i] + " ");
outp.writeBytes(Number0[i]);
if(i != len0 - 1) outp.write(new byte[]{13,10});
}
outp.close();
DataInputStream inp = new DataInputStream(new FileInputStream("Commodity.txt"));
BufferedReader d = new BufferedReader(new InputStreamReader(inp));
ArrayList<String> Name = new ArrayList<String>();
ArrayList<Double> Price = new ArrayList<Double>();
ArrayList<Integer> Number = new ArrayList<Integer>();
String line;
while((line = d.readLine()) != null){
String[] tokens = line.split(" ");
Name.add(tokens[0]);
Price.add(Double.parseDouble(tokens[1]));
Number.add(Integer.parseInt(tokens[2]));
}
inp.close();
double cost = 0;
int len = Name.size();
for(i=0;i<len;i++){
cost += Price.get(i) * Number.get(i);
}
String cost1 = String.valueOf(cost);
DataOutputStream outp2 = new DataOutputStream(new FileOutputStream("Result.txt"));
outp2.writeBytes(cost1);
outp2.close();
}
}
Commodity.txt
aaa 9.99 10
bbb 19.99 15
ccc 29.99 45
ddd 49.99 24
eee 99.99 7
fff 199.99 51
Result.txt
13848.48