import java.io.FileReader;
import java.util.Scanner;
public class file_reading
{
Scanner scanner;
try
{
FileReader reader = new FileReader("toread.txt");
scanner = new Scanner(reader);
} catch (Exception e) {
System.err.print("hello incorrect");
}
String line = scanner.nextLine();
public static void main(String[] args)
{
System.out.println(line);
}
}
答案 0 :(得分:2)
你在这里遇到一些错误,首先是你在方法之外尝试非法的尝试,你必须有方法并且在他的块内({}之间)你会写代码。
您无法打印行的原因可能是因为您从静态方法(main)调用非静态变量
答案 1 :(得分:2)
您必须将所有代码放在方法中。除了Scanner的声明。
您可以像这样在main方法中声明它。然后它只在这个方法中可见。
Scanner scanner;
或者您在main方法之外将其定义为静态成员。
static Scanner scanner;
整个班级都可以使用它。
你必须把
String line = scanner.nextLine();
System.out.println(line);
在你的try / catch-block中。否则,编译器会假定“scanner”可能尚未初始化,因为您只在此块内部初始化它,但想在外部使用它。并且你会得到一个警告,“line”是未知的,因为你在try / catch中也实例化了这一点,这使得大括号外的所有代码都无法访问它。
import java.io.FileReader;
import java.util.Scanner;
public class file_reading
{
public static void main(String[] args)
{
Scanner scanner;
try
{
FileReader reader = new FileReader("toread.txt");
scanner = new Scanner(reader);
String line = scanner.nextLine();
System.out.println(line);
} catch (Exception e) {
System.err.print("hello incorrect");
}
}
}