"Java实验1:字符输入输出流实验报告"

版权申诉
5星 · 超过95%的资源 0 下载量 172 浏览量 更新于2024-03-08 1 收藏 483KB DOC 举报
本次实验的主要目的是为了掌握字符输入和输出流的用法。在实验中,我们编写了两个主要的java类:Fenxi和AnalysisResult。在Fenxi类中,我们实现了一个名为getTotalScore的静态方法,该方法接收一个字符串参数并返回该字符串中所有数字的总和。在该方法中,我们使用了Scanner类来扫描字符串中的所有数字,并使用try-catch语句来处理可能的输入不匹配异常。在AnalysisResult类中,我们实现了一个名为main的主方法,该方法负责读取文件中的成绩单数据并将分析结果写入到另一个文件中。我们使用了File类、Writer类、BufferedWriter类、Reader类和BufferedReader类来实现数据的读取和写入操作。 具体的代码实现如下: Fenxi类: ``` import java.util.*; public class Fenxi{ public static double getTotalScore(String s){ Scanner scanner=new Scanner(s); scanner.useDelimiter("[^0123456789.] "); double totalScore=0; while(scanner.hasNext()){ try{ double score=scanner.nextDouble(); totalScore=totalScore+score; } catch(InputMismatchException exp){ String t=scanner.next(); } } return totalScore; } } ``` AnalysisResult类: ``` import java.io.*; import java.util.*; public class AnalysisResult{ public static void main(String args[]){ File fRead=new File("score.txt"); File fWrite=new File("scoreAnalysis.txt"); try{ Writer out= new FileWriter(fWrite,true); BufferedWriter bufferWrite=new BufferedWriter(out); Reader in=new FileReader(fRead); BufferedReader bufferRead=new BufferedReader(in); String str=null; while ((str=bufferRead.readLine())!=null){ double totalScore =Fenxi.getTotalScore(str); //进行对总分的分析 //将分析结果写入文件 } } catch(IOException e){ System.out.println(e); } } } ``` 在实验中,我们还需要准备一个score.txt文件,该文件包含了一系列的成绩单数据。在AnalysisResult类中,我们通过FileReader和BufferedReader来逐行读取score.txt文件中的数据,并通过调用Fenxi类的getTotalScore方法计算各个成绩单的总分并进行分析。最后,我们将分析结果写入scoreAnalysis.txt文件中。 在本次实验中,我们完成了字符输入和输出流的使用,并且通过实际的代码实现掌握了相关知识。通过本次实验,我们深入理解了流的概念和作用,并且掌握了如何使用流来进行文件的读取和写入操作。同时,在实验中我们也学会了如何使用Scanner类来进行字符串的处理,以及如何使用try-catch语句来处理可能出现的异常情况。这些知识和技能对于我们日后的java编程工作将会非常有用。