java输入和输出流

img

img

img


请问一下为什么我的运行结果跟我scores文本内容不一样呢,是因为文本文件位置放错了,还是其他原因呢,该如何解决?

设置下编码格式试试
eclipse java文件编码_eclipse 设置所有文件编码为UTF-8(最全)_weixin_39915081的博客-CSDN博客

不是位置问题,是乱码了,你的记事本用什么编码格式存储的?或者你可以考虑把记事本拖到记事本里重新编辑保存一下,看看能不能把编码统一了

代码20行,改成
BufferedReader bufferRead = new BufferedReader(new InputStreamReader(in, "UTF-8"));

main方法中内容换成如下即可,把path换成你本地文件的路径

String path = "E:\\邮箱1.txt";
        InputStreamReader isr = null;
        BufferedReader br = null;
        try {
            isr = new InputStreamReader(new FileInputStream(path), "GBK");
            br = new BufferedReader(isr);
            String str;
            // 通过readLine()方法按行读取字符串
            while ((str = br.readLine()) != null) {
                double totalscore = Calculate.getTotalScore(str);
                str = str + "总成绩:" + totalscore;
                System.out.println(str);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 统一在finally中关闭流,防止发生异常的情况下,文件流未能正常关闭
            try {
                if (br != null) {
                    br.close();
                }
                if (isr != null) {
                    isr.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }