JAVA基本输入输出流的几种用法(2)——以简单商品管理系统为例
PrintWriter与DataInputStream的使用
package Commodity_System;
import java.io.*;
import java.lang.String;
import java.util.ArrayList;
public class Commodity6 {
public static void main(String args[])throws IOException{
String[] Name0 = new String[]{"aaa","bbb","ccc","ddd","eee","fff"};
double[] Price0 = new double[]{9.99,19.99,29.99,49.99,99.99,199.99};
int[] Number0 = new int[]{10,15,45,24,7,51};
int len0 = Name0.length;
PrintWriter pw = new PrintWriter(new FileOutputStream("Commodity.txt"));
DataInputStream inp = new DataInputStream(new FileInputStream("Commodity.txt"));
BufferedReader d = new BufferedReader(new InputStreamReader(inp));
PrintWriter pw2 = new PrintWriter(new FileOutputStream("Result.txt"));
int i = 0;
for(i=0;i<len0;i++){
pw.printf(Name0[i] + " ");
pw.print(Price0[i]);
pw.printf(" ");
if(i != len0 - 1){
pw.println(Number0[i]);
}
else{
pw.print(Number0[i]);
}
}
pw.close();
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);
}
pw2.printf("商品的总价为:%.4f",cost);
pw2.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.4800