今天占地方,明天补上...
补上了...嘻嘻,都是最基础的,没定太多的注释
package src;
/**
* 循环某一目录中的所有目录及文件,并将其目录及文件外列出
*/
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class ListFile{
/**
* 函数的递归调用
* 区分当前所读内容为目录还是文件,如果是文件则走else分支,如果是目录则走if分支
* if分支为目录的处理,此种情况下调用该函数本身,进行递归处理,否则走else分支
* @param file
*/
public static void analysis(String file){
//创建文件句柄
File f =new File(file);
//获取文件及目录列表数组
File[] fileInF = f.listFiles();
// 对当前的文件句柄内容进行判断,如为目录走if分支,否则走else分支
if(f.isDirectory()==true){
//如为目录,则对当前目录下的内容进行迭代处理,依次区分是为目录还是文件,通过递归调用自身实现,当调用到某一目录时该目录下如果都是文件情况下结束。
for(File filea : fileInF){
//输出当前目录名称
System.out.println("目录"+filea);
//对当前目录下内容递归调用
analysis(filea.toString());
}
//analysis(filea.toString());
}else{
//对为文件情况的处理,比如说文件名、路径等的输出,文件的拷贝等
//文件名称的输出
// System.out.println("文件:"+f.getName());
//此句是我对文件名称的解析处理,此种文件名的格式为AAA_BBB.XXX,具体意义不作说明
// System.out.println(f.getName()+"=="+f.getName().split("_")[1]+"=="+f.getName().split("_")[1].substring(0,f.getName().split("_")[1].indexOf(".jpg"))+"=="+f.getName().split("_")[1].indexOf(".jpg"));
//作的拼接SQL语句的处理
System.out.println("update nxt_xz_content set c_img='"+f.getName()+"' where c_level=2 and c_column=1 and c_city='"+f.getName().split("_")[1].substring(0,f.getName().split("_")[1].indexOf(".jpg"))+"'");
//对文件的拷贝
try {
copySingleFile(f.toString(), f.getName().toString(), "d:/4/20110831_");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// }
}
/**
* 文件复制业务逻辑实现
* @param srcFileName 源文件名
* @param destFileName 目标文件名
* @param rootPath 文件所操作路径
*
* @return
* @throws IOException
* @throws FileNotFoundException
*/
public static void copySingleFile(String srcFileName, String destFileName,String rootPath) throws FileNotFoundException,IOException {
// 目标文件
File destFile = new File(rootPath +destFileName);
// 源文件
File srcFile = new File( srcFileName);
/** 源文件文件流取得 */
InputStream is = new FileInputStream(srcFile);
/** 输入文件流缓存取得 */
BufferedInputStream inBuffer = new BufferedInputStream(is);
/** 目标文件文件保存流取得 */
FileOutputStream out = new FileOutputStream(destFile);
/** 目标文件文件保存流缓存取得 */
BufferedOutputStream outBuffer = new BufferedOutputStream(out);
/** 复制文件保存 */
int contents = 0;
while ((contents = inBuffer.read()) != -1) {
outBuffer.write(contents);
}
outBuffer.flush();
// 文件流关闭
inBuffer.close();
outBuffer.close();
}
public static void main(String[] args){
//方法调用
analysis("d:/3");
}
}