读书人

Exception in thread quot;mainquot;不知名的异

发布时间: 2012-02-26 20:19:45 作者: rapoo

Exception in thread "main"不知名的错误!!!!
package aa;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Util {

public Util() {
}

public static byte[] readFile(String filename) throws IOException {

File file = new File(filename);
if (filename == null || filename.equals("")) {
throw new NullPointerException("无效的文件路径");
}
long len = file.length();
byte[] bytes = new byte[(int) len];

BufferedInputStream bufferedInputStream = new BufferedInputStream(new
FileInputStream(file));
int r = bufferedInputStream.read(bytes);
if (r != len) {
throw new IOException("读取文件不正确");
}
bufferedInputStream.close();
return bytes;
}

public byte[] readFileJar(String filename) throws IOException {
BufferedInputStream bufferedInputStream = new BufferedInputStream(
getClass().getResource(filename).openStream());
System.out.println(filename);
int len = bufferedInputStream.available();
byte[] bytes = new byte[len];
int r = bufferedInputStream.read(bytes);
if (len != r) {
bytes = null;
throw new IOException("读取文件不正确");
}
bufferedInputStream.close();
return bytes;
}


public static void main(String[] args) {
Util util = new Util();
try {
util.readFile("D:\\XiaoFei\\aaaaaa.txt");
util.readFileJar("D:\\XiaoFei\\aaaaaa.txt");

} catch (IOException ex) {
}
}
}
这是代码!
以下是错误提示:
java.lang.NullPointerException

at aa.Util.readFileJar(Util.java:35)

at aa.Util.main(Util.java:54)

Exception in thread "main"

报错位置:
BufferedInputStream bufferedInputStream = new BufferedInputStream(
getClass().getResource(filename).openStream());
util.readFileJar("D:\\XiaoFei\\aaaaaa.txt");
不知道是什么错误!!!!求高手解决~

[解决办法]
用文件流试试
[解决办法]
getClass().getResource(filename)这个是要干啥?
[解决办法]
原先的getClass().getResource(filename).openStream() 返回的是null
所以报空指针错误

修改为:
BufferedInputStream bufferedInputStream = new BufferedInputStream(
new FileInputStream(filename));
再试试
[解决办法]
你要这样getClass().getResource(filename)用的话
file必须要在package里,不能用d:\\...访问,要用相对路径
[解决办法]
lz应该去看class getResource()的相关内容 其实目前这个问题算是个classpath的问题



关于class.getResource(String res)

该方法是根据类的相对路径来访问资源的。如果该类没有package,则类的根路径是就是当前路径;如果该类有package,则类的根路径是定级包所在的路径

所以按照你上边的代码 这里应该是

Java code
util.readFileJar("/aa/aaaaaa.txt");
[解决办法]
getClass().getResource(filename)是在classloder的路径下查找的
你的文件名没在查找路径内,所以返回空

[解决办法]
探讨
lz应该去看class getResource()的相关内容 其实目前这个问题算是个classpath的问题

关于class.getResource(String res)

该方法是根据类的相对路径来访问资源的。如果该类没有package,则类的根路径是就是当前路径;如果该类有package,则类的根路径是定级包所在的路径

所以按照你上边的代码 这里应该是

Java codeutil.readFileJar("/aa/aaaaaa.txt");

读书人网 >Java相关

热点推荐