尝试使用扫描程序类读取.java文件

时间:2013-11-20 21:47:45

标签: java

我正在尝试使用扫描程序类读取.java文件,但这显然不起作用。

File file = new File("program.java");  
Scanner scanner = new Scanner(file);

我只是想输出program.java的代码。 有任何想法吗?假设所有文件都包含在一个文件夹中。因此,没有必要的途径。

3 个答案:

答案 0 :(得分:2)

  try {
        File file = new File("program.java");
        Scanner scanner = new Scanner(file);
        while(scanner.hasNextLine())
        System.out.println(scanner.nextLine());
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

在创建扫描仪对象之前,你已经做到了。现在您要做的就是检查扫描仪是否有更多行。如果是,请获取下一行并打印出来。

答案 1 :(得分:0)

要阅读java文件中的内容,您必须使用FileInputStream
请参阅以下代码:

File file = new File(("program.java"));  
FileInputStream fis = null;

try {
       fis = new FileInputStream(file);
       int content;
       while ((content = fis.read()) != -1) {
        System.out.print((char) content);
        }
       } catch (IOException e) {
        e.printStackTrace();
        } finally {
        try {
            if (fis != null)
                fis.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

请检查。

答案 2 :(得分:0)

您可以使用BufferedReader对象读取文本文件:

try {

    BufferedReader file = new BufferedReader(new FileReader("program.java"));
    String line;
    String input = ""; // will be equal to the text content of the file

    while ((line = file.readLine()) != null) 
        input += line + '\n';

    System.out.print(input); // print out the content of the file to the console

} catch (Exception e) {System.out.print("Problem reading the file.");}



其他要点:

在阅读文件时,您必须使用try-catch

您可以将Exception(它将在运行时捕获代码中的任何错误)替换为:IOException(仅捕获输入输出异常)或
FileNotFoundException(如果找不到文件,将捕获错误)。

或者你可以将它们组合起来,例如:

}
catch(FileNotFoundException e) 
{
    System.out.print("File not found.");
}
catch(IOException f) 
{
    System.out.print("Different input-output exception.");
}
catch(Exception g) 
{
    System.out.print("A totally different problem!");
}