JAVA程序代码如下
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Vector;
public class CopyFile {
String sourcepath;
String aimpath;
Vector<String> vec;
public CopyFile(String sourcepath,String aimpath)
{
this.sourcepath = sourcepath;
this.aimpath = aimpath;
vec = new Vector <String> ();
}
public void Filename()
{
File f = new File(sourcepath);
String sub[] = f.list();
for(int i = 0;i < sub.length;i++)
{
vec.addElement(sub[i]);
}
}
private boolean bakFile(String fileName)
{
try
{
//读文件
FileReader raf = new FileReader(sourcepath + fileName);
String detail = "";
BufferedReader buff = new BufferedReader(raf);
String temp = buff.readLine();
while (temp != null)
{
detail += temp + "\n";
temp = buff.readLine();
}
raf.close();
System.out.println(detail);
//写文件
File file = new File(aimpath + fileName);
PrintWriter out = new PrintWriter(new FileWriter(file));
out.print(detail);
out.close();
} catch (FileNotFoundException e)
{
System.out.println("文件没有找到");
} catch (IOException e)
{
System.out.println("copyFile 出错");
}
return true;
}
public static void main(String[] args)
{
CopyFile confile =
new CopyFile("E:\\java\\a", "E:\\JAVABASE\\b");
confile.Filename();
Vector ve = new Vector();
ve = confile.vec;
if (ve != null)
for (int i = 0; i < ve.size(); i++)
{
System.out.println((String) ve.elementAt(i));
confile.bakFile((String) ve.elementAt(i));
}
}
}
在eclipse中运行后总是出现
Exception in thread "main" java.lang.NullPointerException
at CopyFile.Filename(CopyFile.java:31)
at CopyFile.main(CopyFile.java:75)
请高手给与解答~~万分感谢~
最好能够给出解决的方法~
请教一个问题:为什么总是出现“Exception in thread "main" java.lang.NullPointerException”报错?
答案:5 悬赏:0 手机版
解决时间 2021-12-24 16:56
- 提问者网友:温旧梦泪无声
- 2021-12-24 13:30
最佳答案
- 五星知识达人网友:鱼忧
- 2021-12-24 14:37
Exception in thread "main" java.lang.NullPointerException
意思是:在main线程中出现了 java.lang.NullPointerException异常
NullPointerException就是找不到对象的意思,最有可能出现的原因就是你没有对一个对象进行赋值便开始使用,或者是你把对象的赋值写在了if语句之类的流程控制语句中
你这个程序很明显了
public void Filename()
{
File f = new File(sourcepath);
String sub[] = f.list();
for(int i = 0;i < sub.length;i++)
{
vec.addElement(sub[i]);
}
}
这里出现了一个,原因可能是你没有对sub[i]进行赋值,检查一下程序吧
第二个没看出来,应该也是类似的吧,你并没有对Vector中的元素进行赋值便开始使用了
解决问题首先要知道问题,你给的这点代码只能看出来有毛病,怎么改就难了,解决这个异常容易,达到你要实现的功能就难了
意思是:在main线程中出现了 java.lang.NullPointerException异常
NullPointerException就是找不到对象的意思,最有可能出现的原因就是你没有对一个对象进行赋值便开始使用,或者是你把对象的赋值写在了if语句之类的流程控制语句中
你这个程序很明显了
public void Filename()
{
File f = new File(sourcepath);
String sub[] = f.list();
for(int i = 0;i < sub.length;i++)
{
vec.addElement(sub[i]);
}
}
这里出现了一个,原因可能是你没有对sub[i]进行赋值,检查一下程序吧
第二个没看出来,应该也是类似的吧,你并没有对Vector中的元素进行赋值便开始使用了
解决问题首先要知道问题,你给的这点代码只能看出来有毛病,怎么改就难了,解决这个异常容易,达到你要实现的功能就难了
全部回答
- 1楼网友:怙棘
- 2021-12-24 15:43
空指针异常 sub[] 的值为null
你E:\java\a 这下面没有文件吧???
建个文件就不会报错了`
- 2楼网友:佘樂
- 2021-12-24 15:31
String sub[] = f.list();
for(int i = 0;i < sub.length;i++)
{
vec.addElement(sub[i]);
}
这段程序有问题,sub[] = f.list();只是把f的头指向了sub,所以第二行的sub.length值为0。vec.addElement(sub[i])自然没执行赋值操作。所以sub永远是空的,报空指针错误。
解决方法:建议你使用 i < f.length 试试
如果这样还不行,你把判断条件换了,不要拿长度来作为判断的条件,换个
- 3楼网友:梦中风几里
- 2021-12-24 15:16
你好,出错的原因在这里:
public studentinfo[] student = new studentinfo[100];
上面的数组开辟了100长度,但是每个元素的默认值都是null,仔细想想是不是?
所以解决办法就是:
string innerstudent(string id, string yx, string zz, string phone) {
studentinfo si = new studentinfo() ;
int count = 0;
for (int i = 0; i < 100; i++) {
if(i == 0 && student[i] == null){
student[i] = si ;
}else if (student[i] != null) {
count++;
}else{
student[count].setid(id);
student[count].setyx(yx);
student[count].setzz(zz);
student[count].setphone(phone);
system.out.println("新增成功!");
break ;
}
}
return id;
}
- 4楼网友:怙棘
- 2021-12-24 15:09
String sub[] = f.list();
sub是null对象
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯