如何从缓冲的 reader 文件中获取数字?
How can i get a number obtained from a buffered reader file?
我需要使用 BufferedReader 从文本文件中获取数字。
当我得到它时,数字是用 ASCII 编码的,我无法将它转换成整数。
此练习用于 class 练习。练习:在 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
这是因为字符“3”在 ASCII table 中的索引是 51 (ASCII table)。你需要解析它:
int value = Character.getNumericValue(valor);
或减去'0'的ASCII码(48)
int value = valor - '0';
一种方法是使用 Integer
class 中的构造函数,它可以接受字符串输入:
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))) {
String line;
while ((line = br.readLine()) != null) {
Integer val = new Integer(line);
if (val < min) min = val;
if (val > max) max = val;
sum += val;
++cnt;
}
}
catch (IOException e) {
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);
我需要使用 BufferedReader 从文本文件中获取数字。 当我得到它时,数字是用 ASCII 编码的,我无法将它转换成整数。
此练习用于 class 练习。练习:在 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
这是因为字符“3”在 ASCII table 中的索引是 51 (ASCII table)。你需要解析它:
int value = Character.getNumericValue(valor);
或减去'0'的ASCII码(48)
int value = valor - '0';
一种方法是使用 Integer
class 中的构造函数,它可以接受字符串输入:
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))) {
String line;
while ((line = br.readLine()) != null) {
Integer val = new Integer(line);
if (val < min) min = val;
if (val > max) max = val;
sum += val;
++cnt;
}
}
catch (IOException e) {
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);