Tay*_*lor 2 java try-catch bufferedreader
所以我试图让一个基本的读者开始工作,这样我就可以在以后的身份验证过程中处理文件。
我遇到的问题是我的 BufferedReader 行出现错误,导致我的 try 函数抛出非法启动异常并且它不会运行。Eclipse 在 br 声明末尾的分号上显示一个错误,并说我应该放一个 { 但我不明白为什么这是必要的。
BufferedReader br = new BufferedReader(new FileReader("Assign4.txt"));
Run Code Online (Sandbox Code Playgroud)
我试图把它放在那里,但它打破了整个尝试部分。
package main;
import java.io.*;
public class file_interface
{
BufferedWriter wr = new BufferedWriter(new FileWriter("target.txt"));
BufferedReader br = new BufferedReader(new FileReader("Assign4.txt"));
try
{
int count = 1;
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null)
{
sb.append(count++);
sb.append(line);
sb.append("\n");
wr.write(line);
line = br.readLine();
}
}
catch (IOException e)
{
System.err.println("Error: " + e);
}
finally
{
br.close();
wr.close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何 Java 语句都必须在方法内。这段代码不是。
有效的事实BufferedWriter wr = new BufferedWriter(new FileWriter("target.txt"));是因为在您的类中被声明为默认字段(没有给出范围标记)file_interface并且正在初始化。它类似于:
public class file_interface {
BufferedWriter wr;
public file_interface() {
wr = new BufferedWriter(new FileWriter("target.txt"));
}
}
Run Code Online (Sandbox Code Playgroud)
只需创建一个方法来保存您的逻辑:
public class file_interface {
public void foo() {
//your code goes here...
//now this is not a field but a variable in the method
BufferedWriter wr = new BufferedWriter(new FileWriter("target.txt"));
BufferedReader br = new BufferedReader(new FileReader("Assign4.txt"));
//rest of your code...
try {
//...
} catch (...) {
//...
}
//...
}
}
Run Code Online (Sandbox Code Playgroud)
然后只需在您的客户端类中调用您的方法。例如,具有以下main方法的类:
public class AMainClass {
public static void main(String[] args) {
file_interface fi = new file_interface();
fi.foo();
}
}
Run Code Online (Sandbox Code Playgroud)
另一个例子,一个带有另一个方法的类:
public class SomeClientClass {
public void bar() {
file_interface fi = new file_interface();
fi.foo();
}
}
Run Code Online (Sandbox Code Playgroud)
注意:您还应该遵循 Java 命名约定,因此您应该重命名file_interfacebyFileInterface甚至MyFileUtil因为interface单词听起来更像是声明 an, uhm, interface.
| 归档时间: |
|
| 查看次数: |
11976 次 |
| 最近记录: |