如果我在文件中有这一行:2 18 4 3 我想将它作为单个整数来读取,我怎么能?
我正在使用缓冲区读取器:
BufferedReader(new FileReader("mp1.data.txt"));
我试过使用:
BufferedReader(new RandomAccessFile("mp1.data.txt"));
所以我可以使用这个方法
.readCahr();
但是我得到了一个错误
如果我用
int w = in.read();
它将读取 ASCII,我想要它原样(12 月)
我想先把它作为一个字符串来读,但我可以把每个数字分开吗?
我也想把每个数字排成一行,但是我的文件里有很多数字
最佳答案
考虑使用 Scanner
:
Scanner scan = new Scanner(new File("mp1.data.txt"));
然后您可以使用 scan.nextInt()
(它返回一个 int
,而不是一个 String
)只要 scan.hasNextInt()
.
不需要那种丑陋的拆分和解析:)
但是,请注意这种方法将继续读取第一行之后的整数(如果这不是您想要的,您可能应该遵循其他答案中概述的建议,只读取和处理单个线)。
此外,一旦在文件中遇到非整数,hasNextInt()
将返回 false
。如果您需要一种检测和处理无效数据的方法,您应该再次考虑其他答案。
关于java - 将一行字符串转换为单个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17657842/