Java语法错误缓冲读取器

时间:2012-07-01 12:02:50

标签: java bufferedreader

我正在编写一个只读取文本文件并打印出行的类。我在包含BufferedReader rd = new BufferedReader(new FileReader(“file.txt”))的行上收到错误;说令牌“;”上的语法错误,{在此令牌后预期。我已经尝试将它放在一个方法中,并且在一个try catch块中,因为它建议但是我无法解析rd变量。我正在使用acm包,所以其他一些语法可能看起来不同但我没有收到任何其他错误。任何帮助将不胜感激=)

import acm.program.*;
import acm.util.*;
import java.io.*;
import java.util.*;

public class FileReading extends ConsoleProgram {   

BufferedReader rd = new BufferedReader(new FileReader("file.txt"));

try {
    while (true) {          
        String line = rd.readLine();
        if (line == null) {
            break;
        }
        println(line);
    }
    rd.close();
}
catch (IOException ex) {
    throw new ErrorException(ex);
    }
}
}

3 个答案:

答案 0 :(得分:3)

这样的代码块应该包含在方法或静态子句中。类似的东西:

public class FileReading extends ConsoleProgram {   

   public void readFile(){
     BufferedReader rd = null;
     try {
         rd = new BufferedReader(new FileReader("file.txt"));
         while (true) {          
            String line = rd.readLine();
            if (line == null) {
                break;
            }
            println(line);
         }
     }catch (IOException ex) {
         throw new ErrorException(ex);
     }finally{
        try{
         rd.close();
        }catch (IOException ex) {
         throw new ErrorException(ex);
        }
     }
   }
}

答案 1 :(得分:1)

正如其他人所回答的那样,你无法在类的一般部分提供代码,它必须在方法或静态块中。

通过将代码块放在构造函数中,问题就消失了。 例如,见下文。

import acm.program.*;
import acm.util.*;
import java.io.*;
import java.util.*;

public class FileReading extends ConsoleProgram {   
public FileReading()
{
BufferedReader rd = new BufferedReader(new FileReader("file.txt"));

try {
    while (true) {          
        String line = rd.readLine();
        if (line == null) {
            break;
        }
        println(line);
    }
    rd.close();
}
catch (IOException ex) {
    throw new ErrorException(ex);
    }
}
}
}

答案 2 :(得分:0)

创建一个方法......并在其中执行此操作...不直接在类

例如:

public void go()
{

    BufferedReader rd = new BufferedReader(new FileReader("file.txt"));

try {
    while (true) {          
        String line = rd.readLine();
        if (line == null) {
            break;
        }
        println(line);
    }
    rd.close();
}
catch (IOException ex) {
    throw new ErrorException(ex);
    }
}

}