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"); 这里的构造方法只能创建一个文件,而不能创建一个文件夹,也就是路径。
不知道哥们们有遇到这个问题的没有。
|
|