A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima.test;


        import java.io.File;
        import java.io.FileInputStream;
        import java.io.FileOutputStream;
        import java.io.IOException;
        import java.io.InputStream;
        import java.io.OutputStream;
        import java.util.Calendar;

        public class FileTest {

                public static void main(String[] args) throws IOException {
                        File srcFile = new File("C:\\qq.jpg");
                        InputStream in = new FileInputStream(srcFile);
                        Calendar c = Calendar.getInstance();

                         //一开始我把str面写成了 "C:\\test1\\image\\"+ c.get(Calendar.YEAR)+"\\"+(c.get(Calendar.MONTH)+1)+"\\"+c.get(Calendar.DAY_OF_MONTH)+ "\\a.jpg" ;  
                        String str ="C:\\test1\\image\\"+ c.get(Calendar.YEAR)+"\\"+(c.get(Calendar.MONTH)+1)+"\\"+c.get(Calendar.DAY_OF_MONTH);
                     
                        
                        File destFile = new File(str);
                        if(!destFile.exists()){
                                destFile.mkdirs();
                        }

                       //这里也写成 OutputStream out = new FileOutputStream(str);
                       //然后编译时报了一个控指针异常。
                        OutputStream out = new FileOutputStream(str+"\\a.jpg");
                        byte[] arr = new byte[1024];
                        int len=0;
                        while((len=in.read(arr))!=-1){
                                out.write(arr, 0, len);
                        }
                        in.close();
                        out.close();
                }
        }
最后终于找出了原因。Filel类中的mkdirs()方法只能创建路径。而不能创建文件。

OutputStream out = new FileOutputStream(str+"\\a.jpg"); 这里的构造方法只能创建一个文件,而不能创建一个文件夹,也就是路径。
不知道哥们们有遇到这个问题的没有。


2 个回复

倒序浏览
目录需要手动调用mkdirs()创建,文件可以自动创建
回复 使用道具 举报
受益啊顶起来奥
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马