如何获取从缓冲阅读器文件中获得的数字?

我需要使用 BufferedReader 从 textFile 中获取一个数字。当我得到它时,该数字以 ASCII 编码,我无法将其转换为整数。


本练习用于课堂练习。练习:在带有 Windows 笔记本的文件夹中创建一个文本文件。该文件将包含整数,每行一个。用 Java 创建一个程序,它读取先前的数据文件并在屏幕上显示我们的值、平均值、最大值和最小值。用户将指明文件的名称。


char valor;

fs = new FileReader(path+filename);

bf = new BufferedReader(fs)


//THE TEXTFILE CONTAINS INT NUMBERS, FIRST OF THEM IS NUMER 3

valor = (char)bf.read(); //I NEED THIS NUMBER, WITHOUT ASCII CODED


//I NEED TO USE THIS VALUE FOR CALCULATE

 System.out.print(valor); //CONSOLE :      3


---------------------------------------------

//IF I CONVERT, CONSOLE SHOWS

System.out.print((int)valor);   //CONSOLE:     51


泛舟湖上清波郎朗
浏览 207回答 2
2回答

鸿蒙传说

发生这种情况是因为字符“3”的 ASCII 表中的索引是 51(ASCII 表)。你需要解析它:int value = Character.getNumericValue(valor);或减去 '0' 的 ASCII 码 (48)int value = valor - '0';

慕桂英546537

一种方法是使用Integer可以接受字符串输入的类中的构造函数:int min = Integer.MAX_VALUE;int max = Integer.MIN_VALUE;int sum = 0;int cnt = 0;try (BufferedReader br = Files.newBufferedReader(Paths.get(path+filename))) {&nbsp; &nbsp; String line;&nbsp; &nbsp; while ((line = br.readLine()) != null) {&nbsp; &nbsp; &nbsp; &nbsp; Integer val = new Integer(line);&nbsp; &nbsp; &nbsp; &nbsp; if (val < min) min = val;&nbsp; &nbsp; &nbsp; &nbsp; if (val > max) max = val;&nbsp; &nbsp; &nbsp; &nbsp; sum += val;&nbsp; &nbsp; &nbsp; &nbsp; ++cnt;&nbsp; &nbsp; }}catch (IOException e) {&nbsp; &nbsp; System.err.format("IOException: %s%n", e);}System.out.println("average value: " + (sum / cnt));System.out.println("highest value: " + max);System.out.println("smallest value: " + min);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java