输入输出流:实验1

来源:互联网 发布:plsql查看数据库表 编辑:程序博客网 时间:2024/06/08 14:55
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());}}}

原创粉丝点击