文件程序显示错误

时间:2012-05-21 07:11:36

标签: java file runtime-error

我的文件程序第一次运行得非常好。但是当我想要运行它之后显示错误。可能是什么原因?

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)

3 个答案:

答案 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

因此,代码没有问题,请检查您的文件系统文件夹安全性读/写权限