所以我试着让一个基本的阅读器运行起来,这样我可以在以后的身份验证过程中使用文件。
我遇到的问题是,我在BufferedReader行上遇到一个错误,导致我的try函数抛出一个非法的启动异常,并且它不会运行。Eclipse向我展示了br声明末尾分号上的一个错误,并说我应该放一个{但我不明白为什么这是必要的。
BufferedReader br = new BufferedReader(new FileReader("Assign4.txt"));
我试着把它放在那里,但它破坏了整个try部分。
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();
}
}
}
任何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"));
}
}
只需创建一种方法来保持逻辑:
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 (...) {
//...
}
//...
}
}
然后只需在客户端类中调用您的方法。例如,具有main
方法的类:
public class AMainClass {
public static void main(String[] args) {
file_interface fi = new file_interface();
fi.foo();
}
}
另一个例子,一个类有另一个方法:
public class SomeClientClass {
public void bar() {
file_interface fi = new file_interface();
fi.foo();
}
}
注意:您还应该遵循Java命名约定,因此您应该通过FileInterface
或甚至MyFileUtil
重命名file_interface
,因为接口
这个词听起来更像是声明一个,uhm,接口
。
此代码段从字符串中提取最后四个字符,并查看它们是否是邮政编码。 我已经评论了NetBeans中报告“非法启动类型错误”的点。 我想知道,在创建类时是否不能使用try-catch?或者,这门课漏了什么吗? 我试着搜索stackoverflow。但是我仍然很困惑。这里有一些链接。 Java非法启动类型 Java错误:非法启动表达式 java:为什么程序会给出“非法启动类型”错误?
问题内容: 我的程序: 我收到此错误:。语法绝对正确,我已经检查了一百万遍。怎么了? 问题答案: 您只能在类级别具有字段声明。这样的if语句必须位于方法,构造函数或初始化程序块中。 您可以消除这样的if语句: 但是我质疑为什么您根本不想在创建时设置此值,而不是响应某些用户操作。
我正在学习Netbeans CRUD应用程序教程(修改为使用我自己的数据库),我发现了一个我根本无法理解的错误。 错误显示“类型的非法开始”;'预期,找不到符号 这是我的代码: 错误在最后4行: 我知道这很简单,但我不知道该怎么解决。我确信这是一个错位的“;”还是什么? 你肯定知道,我对Java是新手。 我已经做了教程所说的一切,但似乎无法解决这个问题... 任何帮助都是伟大的! 谢啦
问题内容: class address { 此代码段从字符串中提取最后四个字符,并查看它们是否为邮政编码。 我评论了NetBeans中报告“非法启动类型错误”的要点。 我想知道在创建类时是否不能使用try-catch?或者,这堂课会错过什么吗? 问题答案: Java并 没有 让你简单地把报表一类的机构。您总是需要在这些语句周围加上一个“块”。 换句话说:第一个工作示例的最简单方法是在类中添加mai
我正在使用MEAN堆栈编写一个Web应用程序。我安装了穆特通过npm这样: 我需要它在我的一个路由文件中: 我使用的是,它每次重启都会抛出以下错误,因为我添加了要求语句。 在过去的两天里,我安装了mongo、node和express。我正在运行OS X优胜美地10.10.2版。
在 Windows 上执行命令将返回以下结果: 运行诊断程序会产生以下结果: