【发布时间】:2017-10-12 23:53:07
【问题描述】:
我无法让我的 java 程序读取任何文本文件。
public static void main(String[] args) throws java.io.IOException {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try {
long base = Long.parseLong(args[0]);
String input = br.readLine(); //read first line till the end of file
long list = Long.parseLong(input);
convertBase(base, list);
}
finally {
br.close();
}
}
当我在命令行中手动输入值时程序可以工作,但是当我尝试使用文本文件时它会抛出异常:
Exception in thread "main" java.lang.NumberFormatException: For input string: "baseconverion.txt"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:589)
at java.lang.Long.parseLong(Long.java:631)
at FromDecimal.main(FromDecimal.java:46)
不确定我做错了什么/错过了什么。
【问题讨论】:
-
您应该在尝试处理它之前打印
input- 您可能会对它的内容感到惊讶。 -
您正在尝试将文件名解析为
long。解决方案:不要。 NBreadLine()不会“读取第一行直到文件末尾”。您为什么首先尝试将文本文件解析为longs? -
我需要解析为 long,因为我有另一种方法可以将十进制数转换为基数
-
解析为 long 会转换为 binary,而不是十进制,但您不需要将 filename 解析为 long。您的输入和参数以某种方式混合在一起。注意这里没有任何东西可以读取文本文件。
标签: bufferedreader inputstreamreader