您的位置:首页 > 编程语言 > Java开发

JAVA写的一个文件夹的文件拷贝另一个文件夹的下

2013-10-19 02:13 543 查看
package com.upload;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.List;

public class Upload {

/**

     * 功能:Java读取txt文件的内容

     * 步骤:1:先获得文件句柄

     * 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取

     * 3:读取到输入流后,需要读取生成字节流

     * 4:一行一行的输出。readline()。

     * 备注:需要考虑的是异常情况

     * @param filePath

     */

    public List<String> readTxtFile(String filePath){
List<String> files = new ArrayList<String>();

        try {

                String encoding="GBK";

                File file=new File(filePath);

                if(file.isFile() && file.exists()){ //判断文件是否存在

                    InputStreamReader read = new InputStreamReader(

                    new FileInputStream(file),encoding);//考虑到编码格式

                    BufferedReader bufferedReader = new BufferedReader(read);

                    String lineTxt = null;

                    while((lineTxt = bufferedReader.readLine()) != null){

                    String temp[] = lineTxt.replaceAll("\\\\","/").split("/");   

                    if (temp.length > 1) {   

                       lineTxt = temp[temp.length - 1];   

                    }

                        System.out.println(lineTxt);

                        files.add(lineTxt);

                    }

                    read.close();

        }else{

            System.out.println("找不到指定的文件");

        }

        } catch (Exception e) {

            System.out.println("读取文件内容出错");

            e.printStackTrace();

        }

     return files;

    }    

/**
* 复制单个文件

* @param oldPath
*            String 原文件路径 如:c:/fqf.txt
* @param newPath
*            String 复制后路径 如:f:/fqf.txt
* @return boolean
*/
public void copyFile(String oldPath, String newPath) {
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldPath);
if
4000
(oldfile.exists()) { // 文件存在时
InputStream inStream = new FileInputStream(oldPath); // 读入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
int length;
while ((byteread = inStream.read(buffer)) != -1) {
bytesum += byteread; // 字节数 文件大小
//System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
inStream.close();
}
} catch (Exception e) {
System.out.println("复制单个文件操作出错");
e.printStackTrace();

}
}

 /** 

     * 复制整个文件夹内容 

     * @param oldPath String 原文件路径 如:c:/fqf 

     * @param newPath String 复制后路径 如:f:/fqf/ff 

     * @return boolean 

     */ 

   public void copyFolder(String oldPath, String newPath) { 

       try { 

           (new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹 

           File a=new File(oldPath); 

           String[] file=a.list(); 

           File temp=null; 

           for (int i = 0; i < file.length; i++) { 

               if(oldPath.endsWith(File.separator)){ 

                   temp=new File(oldPath+file[i]); 

               } 

               else{ 

                   temp=new File(oldPath+File.separator+file[i]); 

               } 

               if(temp.isFile()){ 

                   FileInputStream input = new FileInputStream(temp); 

                   FileOutputStream output = new FileOutputStream(newPath + "/" + 

                           (temp.getName()).toString()); 

                   byte[] b = new byte[1024 * 5]; 

                   int len; 

                   while ( (len = input.read(b)) != -1) { 

                       output.write(b, 0, len); 

                   } 

                   output.flush(); 

                   output.close(); 

                   input.close(); 

               } 

               if(temp.isDirectory()){//如果是子文件夹 

                   copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]); 

               } 

           } 

       } 

       catch (Exception e) { 

           System.out.println("复制整个文件夹内容操作出错"); 

           e.printStackTrace(); 

       } 

   }

public static void main(String[] args) throws Exception {
Upload upload = new Upload();
List<String> files = new ArrayList<String>();
    String filePath = "E:"+File.separator+"Work"+File.separator+"Upload"+File.separator+"src" + File.separator + "filepathname.txt";
     int number = upload.readTxtFile(filePath).size();
     System.out.println("总数为:" + number);
    files = upload.readTxtFile(filePath);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JAVA