所以我试图读取一个文件,这是我的一段代码;
try{
FileReader fr = new FileReader("mikuname.txt");
BufferedReader br = new BufferedReader(fr);
String str;
while ((str = br.readLine()) != null){
System.out.println(str + "\n");
}
br.close();
}
但是在编译时我收到错误“令牌上的语法错误”,请尝试“请删除此令牌”
知道如何解决这个问题吗? 谢谢!
答案 0 :(得分:3)
您已将try
块从蓝色插入到课堂中。您可能来自脚本语言背景,只需编写独立的操作代码就是合法的。在Java中,此类代码必须位于方法内或初始化程序中。如果您只想运行一些代码,请将其放入main
方法:
public class MyGuy {
public static void main(String[] args) {
... your try-block here ...
}
}
请注意,您的案例非常适合Java 7的尝试使用资源:
try (FileReader fr = new FileReader("mikuname.txt");
BufferedReader br = new BufferedReader(fr))
{
... your actions ...
}
答案 1 :(得分:2)
在这种情况下,try
块必须至少包含一个catch
块或finally
块。
例如
try {
} catch(SomeException e){
} finally {
}
答案 2 :(得分:1)
尝试总是至少有一个捕获块
try{
FileReader fr = new FileReader("mikuname.txt");
BufferedReader br = new BufferedReader(fr);
String str;
while ((str = br.readLine()) != null){
System.out.println(str + "\n");
}
br.close();
}catch (Exception e){
//some exception information
}
检查doc以获取有关try..catch [link] http://docs.oracle.com/javase/tutorial/essential/exceptions/try.html
的更多信息答案 3 :(得分:1)
“我知道如何解决这个问题吗?”
在catch
阻止之后放置try
阻止。这将是正确的解决方案之一:
catch(Exception e){}
答案 4 :(得分:1)
你应该有一个与try块对应的catch块,如下所示:
try {
...
catch(<exception>) {
}
答案 5 :(得分:1)
对于Java 1.7+,将读者的声明移到资源块中:
try (FileReader fr = new FileReader("mikuname.txt");) {
// rest of block same as yours
}
使用资源时不需要catch和/或finally块。
答案 6 :(得分:1)
看起来您正在尝试在Java 7中使用新的try
with resources。为此,您在资源周围使用()
:
try (
FileReader fr = new FileReader("mikuname.txt");
BufferedReader br = new BufferedReader(fr);
) {
String str;
while ((str = br.readLine()) != null){
System.out.println(str + "\n");
}
// You don't need this, it's done by the try: br.close();
}
...当然,您必须确保使用Java 7,并且必须在适当的上下文中使用它(在方法内或在实例或静态初始化程序中)。
答案 7 :(得分:0)
正如编译器建议的那样,您应该删除try
关键字。
但是,如果您确实想捕获可能抛出的IOException,则应添加catch
子句而不是删除try
关键字。
如果您使用的是Java 7,则可以稍微清理一下代码。现在,如果在读取文件时出错,则不会关闭该文件,并且您的应用程序可能会用完文件描述符。在Java 7中,try-with-resources语句有一个很好的处理方法:
try (BufferedReader br = new BufferedReader(new FileReader("mikuname.txt"))) {
String str;
while ((str = br.readLine()) != null) {
System.out.println(str + "\n");
}
} catch (IOException e) {
// Do something with the IO problem that occurred while reading the file
}