黑马程序员技术交流社区
标题:
文件复制问题
[打印本页]
作者:
北极£莜蓝
时间:
2014-6-23 12:10
标题:
文件复制问题
本帖最后由 北极£莜蓝 于 2014-6-23 12:11 编辑
public class FileTest2 {
public static void main(String[] args) throws IOException,
NullPointerException {
Scanner sc = new Scanner(System.in);
System.out.println("输入一个指定的磁盘目录如下: D:/javacod/.......");
String str1 = sc.nextLine();
System.out.println("输入一个目标的磁盘目录如下: D:/javacod/.......");
String str2 = sc.nextLine();
// 创建文件对象
File file1 = new File(str1);
File file2 = new File(str2);
System.out.println(file1);
System.out.println(file2);
// 获取到该目的文件下的所有文件
String[] list = file1.list();
System.out.println(list);
for (int i = 0; i < list.length; i++)//为什么会把出现NullPointerException
{
{
if (list
.endsWith(".java")) {
File file3 = new File(file2, list
);
file3.createNewFile();
}
}
}
}
}
作者:
北极£莜蓝
时间:
2014-6-23 12:12
public class FileTest1 {
public static void main(String[] args) throws IOException {
//指定源目录
File file1 = new File ("E:\\javaDemo1");
//指定目的地目录
File file2 = new File("E:\\javaDemo");
//获取到源文件目录下的所有文件
String[] list = file1.list();
for(String str : list) {
if(str.endsWith(".java")) {
File file3 = new File(file2,str);
file3.createNewFile();
}
}
}
}
这样就没问题
作者:
001可望成功
时间:
2014-6-23 13:18
因为你的文件目录对象file1和file2都是新建的,在他们里面并没有任何的文件,所以,你使用file.list()时返回的内容为空,即list字符串数组对象为空,接下来你获取list的长度时使用list.length时,就会出现空指针异常
作者:
吴海平
时间:
2014-6-23 13:48
本帖最后由 吴海平 于 2014-6-23 13:54 编辑
不是很明白你的需求是什么,如果是:从屏幕中输入要扫描的文件夹,如果文件夹中如果有文件包含.java的文件则复制到指定的文本文档中,可以参考以下代码
public class test1222 {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in );
System.out.println("请输入源文件路径:D:\\abc");//扫描的是文件夹
System.out.println("请输入目的文件路径:D:\\123.txt");//存入的目的文件是文本文档
// 获取源文件和目的文件路径
String str1=sc.nextLine();
String str2=sc.nextLine();
// 将获取到字符串封装成文件对象
File file1=new File(str1);
File file2=new File(str2);
// 展开源文件,将所有文件都存入文件数组中
File[] files=file1.listFiles();
// 判断关联目的文件是否存在,不存在则创建
if(!file2.exists()){
file2.createNewFile();
}
// 展开源文件,如果文件是后缀名.java的文件则将其复制到指定的目的文件中
for(File file:files){
if(file.getName().endsWith(".java")){
write2DestFile(file,file2);
}
}
}
//定义一个写入文件的功能,将符合条件的文件复制到指定的文本文档中
private static void write2DestFile(File file,File file2) throws IOException {
// 创建读取流并关联符合条件的文件
FileInputStream fis =new FileInputStream(file);
// 创建输出流并联目的文件
FileOutputStream fos = new FileOutputStream(file2);
int by=0;
while((by=fis.read())!=-1){//重复读写
fos.write(by);
}
fis.close();
fos.close();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2