我的文件程序第一次运行得非常好。但是当我想要运行它之后显示错误。可能是什么原因?
import java.io.FileInputStream;
import java.io.IOException;
public class FileSentenceRead {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
/*Scanner sn=new Scanner(System.in);
System.out.println("Enter file name");
String fname=sn.next();*/
FileInputStream fis=new FileInputStream("textfile.text");
int size=fis.available();
byte bt[]= new byte[size];
fis.read(bt);
String pr=new String(bt);
System.out.println(pr);
String[] pr1=pr.split("\\s|\\.");
// @SuppressWarnings("rawtypes")
// HashSet set=new HashSet();
StringBuffer s=null;
StringBuffer ss=new StringBuffer();
for(int i=0;i<pr1.length;i++){
s= new StringBuffer(pr1[i]);
// System.out.print(s.reverse()+" ");
s=s.reverse();
ss.append(s+" ");
}
System.out.println(ss);
}
}
这是我的错误消息
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
答案 0 :(得分:1)
找不到主类:textfile.text
看起来您没有执行正确的命令行。您的命令行调用应该是这样的(假设您从生成类的位置执行它):
java -cp . FileSentenceRead
或者如果你把它放在一个包装中:
java -cp . com.foo.mypackage.FileSentenceRead
如果从Eclipse运行,则可能已将程序参数放在VM参数中,这将产生相同的错误。然后只需在正确的字段中移动程序参数,并从VM参数字段中删除它们。
答案 1 :(得分:0)
你是如何上课的?正如您在错误消息中看到的那样,您的主要班级名称为FileSentenceRead
而非textfile.text
。我运行你的代码,它在我的机器上运行得很好。
您的启动配置或用于运行它的命令可能会出现问题。
答案 2 :(得分:0)
是 Himanshu Mohta 是正确的。我已经用
检查了代码FileInputStream fis = new FileInputStream(&#34; c:\\ tmp \\ textfile.text&#34;);
和这里的一些文字作为文本文件中的文本并返回:
这里的一些文字
emos txet ereh
因此,代码没有问题,请检查您的文件系统文件夹安全性读/写权限