输入输出流:实验1
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.Reader;
import java.io.Writer;
import java.util.InputMismatchException;
import java.util.Scanner;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.File;
import java.io.IOException;
class Fenxi{
public static double getTotalScore(String s) {
Scanner scanner = new Scanner(s);
/*一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。
Scanner(s)产生从指定字符串扫描的值*/
scanner.useDelimiter("[^0123456789.]+");
//将此扫描仪的分隔模式设置为从指定的String构造的模式
double totalScore = 0;
while(scanner.hasNext()) {
//扫描仪判断有没有下一个元素
try {
double score = scanner.nextDouble();
/*将输入的下一个标记扫描为double。
如果下一个令牌不能转换为有效的double。
则抛出InputMismatchException异常*/
totalScore += score;
}
catch(InputMismatchException exp) {
//由Scanner抛出,表示检索到的令牌与预期类型的模式不匹配
//或超出预期类型范围。
String t = scanner.next();
//返回扫描仪的下一个标记或令牌
}
}
return totalScore;
}
}
public class main_class {
public static void main(String[] args) {
// TODO 自动生成的方法存根
File socre = new File("C:\\Users\\asus\\Desktop\\score.txt");
File socreA =
new File("socreAnalysis.txt");
try {
Reader in = new FileReader(socre);
Writer out = new FileWriter(socreA);
BufferedReader bufreader = new BufferedReader(in);
BufferedWriter bufwriter = new BufferedWriter(out);
String buf = null;
while((buf=bufreader.readLine())!=null) {
buf+=" 总分:"+Fenxi.getTotalScore(buf);
bufwriter.write(buf);
bufwriter.newLine();
}
bufreader.close();
bufwriter.close();
in.close();
out.close();
}
catch(IOException e) {
System.out.println(e.toString());
}
}
}
posted on 2017-12-08 20:20 MACHINE_001 阅读(171) 评论(0) 编辑 收藏 举报