Java IO流,怎样实现将inputFile中的内容读出,并以另一种格式写入到outputFile中?
请写出Java代码,实现以下功能:接收两个类型为java.io.File的参数input,output。将input的内容读出、转换,按照下面要求的格式写入output。...
请写出Java代码,实现以下功能:
接收两个类型为java.io.File的参数input,output。将input的内容读出、转换,按照下面要求的格式写入output。
input文件内容格式如下:
水果名,进货时间,进货数量
苹果,1月,200
香蕉,1月,100
桃子,1月,100
苹果,1月,60
苹果,2月,100
桃子,3月,50
output文件内容如下:
水果名,1月,2月,3月
苹果,260,100,0
香蕉,100,0, 0
桃子,100,0,50 展开
接收两个类型为java.io.File的参数input,output。将input的内容读出、转换,按照下面要求的格式写入output。
input文件内容格式如下:
水果名,进货时间,进货数量
苹果,1月,200
香蕉,1月,100
桃子,1月,100
苹果,1月,60
苹果,2月,100
桃子,3月,50
output文件内容如下:
水果名,1月,2月,3月
苹果,260,100,0
香蕉,100,0, 0
桃子,100,0,50 展开
展开全部
import java.io.File;
import java.io.FileWriter;
import java.util.HashMap;
import java.util.Scanner;
public class whileshuzu
{
public static final String LINE = System.getProperty("line.separator");
public static void main(String[] args)
{
try
{
Scanner sc = new Scanner(new File("input.txt"));
String reg = "^[^,,]+[,,\\s]+\\d+月[,,\\s]+\\d+\\s*$";
HashMap<String, Integer> map = new HashMap<String, Integer>();
int max = Integer.MIN_VALUE;
String fruit = "";
while(sc.hasNextLine())
{
String line = sc.nextLine();
if(line.matches(reg))
{
String[] arr = line.split("[,,\\x20\t]+");
String key = arr[0] + "," + arr[1];
if(fruit.indexOf(arr[0]) == -1)
{
fruit += arr[0] + ",";
}
int month = Integer.parseInt(arr[1].replaceAll("\\D+$", ""));
max = max < month ? month : max;
int count = Integer.parseInt(arr[2]);
if(null == map.get(key))
{
map.put(key, count);
}
else
{
int last = map.get(key);
map.put(key, count + last);
}
}
}
sc.close();
String title = "水果名";
for(int i = 1; i <= max; i++)
{
title += "," + i + "月";
}
fruit = fruit.replaceAll(",$", "");
String result = "";
String[] fs = fruit.split(",");
for(int i = 0; i < fs.length; i++)
{
String tmp = fs[i];
for(int j = 1; j <= max; j++)
{
Integer c = map.get(fs[i] + "," + j + "月");
tmp += "," + (null == c ? 0 : c);
}
result += tmp + LINE;
}
FileWriter fw = new FileWriter("output.txt");
fw.write(title + LINE + result);
fw.flush();
fw.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询