Bufferedreader和InputStreamReader

时间:2017-10-12 23:53:08

标签: bufferedreader inputstreamreader

我无法让我的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)

不确定我做错了什么/丢失了。

1 个答案:

答案 0 :(得分:0)

  

当我尝试使用文本文件时

你的意思是'当我输入文件名而不是数字'时。你根本不是'尝试''使用文本文件'。您所做的只是在控制台输入文件名。这里没有任何东西可以打开或读取任何文本文件。 Java并不神奇:它不会神奇地意识到这是一个文件名,并为你神奇地打开它。

您需要阅读Java Tutorial和Javadoc中的文件I / O.

如果你的目标是将小数转换为另一个基数,你也不应该使用Long.parseLong()。您需要将原始行传递给转换方法。