java io null异常_求助!:java.lang.NullPointerException

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

package day1404作业;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.util.Scanner;

public class Test3wjhb {

public static void main(String[] args) {

/*

* 输入需要合并的文件所在文件夹路径

* 判断是否是文件夹,不是直接return

* 输入需要取出的文件格式后缀

* 调用'pd'方法,取出文件夹内指定后缀的文件

* 输入需要创建的新文件所在目录

* 判断目录中是否已存在该文件,存在则先删除,不存在直接新建文件

* 逐条将目标文件夹中的文件传入指定文件,用new FOS(文件,true)方法累加

*/

System.out.println("输入需要合并文件所在的文件夹路径");

String s1 = new Scanner(System.in).nextLine();

File f1 = new File(s1);

if(! f1.isDirectory()) {

System.out.println("输入的不是文件夹路径");

return;

}

System.out.println("输入需要合并的文件格式后缀");

String hz = new Scanner(System.in).nextLine();

System.out.println("输入合并文件保存的文件夹路径");

String s2 = new Scanner(System.in).nextLine();

File ml = new File(s2);

if(! ml.isDirectory()) {

System.out.println("输入的不是文件夹路径");

return;

}

System.out.println("输入保存文件名");

String wjm = new Scanner(System.in).nextLine();

try {

pd(hz,f1,ml,wjm);

System.out.println("合并成功");

} catch (Exception e) {

System.out.println("合并失败");

e.printStackTrace();

}

}

private static void pd(String hz, File f1,File ml,String wjm) throws Exception{

File[] l1 = f1.listFiles();

for (File f2 : l1) {//取目标文件夹中的文件名

String n1 = f2.getName().toLowerCase();

int indexOf = n1.indexOf('.');//找到文件名中'.'的下标值

String hzm = n1.substring(indexOf+1);//截取后缀

if(hz.equals(hzm)) {

inPut(f2,ml,wjm,hz);

}

}

}

private static void inPut(File f2,File ml,String wjm,String hz) throws Exception{

BufferedInputStream in = new BufferedInputStream

(new FileInputStream(f2));

BufferedOutputStream out = null;

int b;

while((b=in.read())!=-1) {

File wj1 = new File(ml,wjm+'.'+hz);

if(! wj1.exists()) {

out = new BufferedOutputStream

(new FileOutputStream(wj1,true));

}

out.write(b);

}

in.close();

out.close();

}

}

返回错误:

java.lang.NullPointerException

at day1404作业.Test3wjhb.inPut(Test3wjhb.java:76)

at day1404作业.Test3wjhb.pd(Test3wjhb.java:58)

at day1404作业.Test3wjhb.main(Test3wjhb.java:40)

运行结果:

只复制了第一个符合条件的文件到目标文件,然后报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值