Java错误找不到符号问题,好心人帮帮忙!在此谢过

[复制链接]
查看11 | 回复3 | 2010-11-1 20:28:23 | 显示全部楼层 |阅读模式
源代码:
/*Node.java*/
import java.io.File;
import java.util.Scanner;
import java.io.FileInputStream;
import java.io.IOException;
public class Node{
public static void main(String args[]){

File file = new File("D:\\t.txt");

try{

Scanner scanner = new Scanner(new FileInputStream(file),"gbk");

while(scanner.hasNextLine()){

System.out.println(scanner.nextLine());

}

scanner.close();

}catch(IOException e){

scanner.close();

System.out.println("exception");

}
}
}
编译后出现如下错误:
E:\>javac Node.java
Node.java:17: 找不到符号
符号: 变量 scanner
位置: 类 Node

scanner.close();

^
1 错误

回复

使用道具 举报

千问 | 2010-11-1 20:28:23 | 显示全部楼层
你的scanner定义在{}内,你后面去引用,超过了其作用域修改如下:public class Node{ public static void main(String args[]){
File file = new File("D:\\t.txt");
Scanner scanner = null;
try{
scanner = new Scanner(new FileInputStream(file),"gbk");
while(scanner.hasNextLine()){
System.out.println(scanner.next
回复

使用道具 举报

千问 | 2010-11-1 20:28:23 | 显示全部楼层
LZ,你在try声明的作用域catch那边已经超出了,是得不到的,还有,LZ关闭scanner不是这样关的,要在finally里关闭,即使出了错误也会走finally,而不是像你那样在try和catch里面关两次哈~/*Node.java*/import java.io.File;import java.util.Scanner;impo
回复

使用道具 举报

千问 | 2010-11-1 20:28:23 | 显示全部楼层
正常呀。在catch语句中的scanner是没有声明的,因为scanner语句是在try语句声明,所以范围无法在catch中获取。除非将scanner声明在try之前。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行