File文件操作 大集合

package com.web.file;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class MyFile {

 /**
  * @param args
  *            main方法,进行测试使用
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  try {
   // copyFolder("D://file//a", "C://");
   copyFile("D://file//a//新建文本文档.txt", "C:");
   //makeFolderFile("C://file","a.txt");
   //makeFolder("C://file");
   //String line=readFileByInpuStream("D://file//a.txt");
   String line=readLineFile("D://file//", "a.txt");
   System.out.println(line);
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

 }

 /**
  * 创建一个文件夹
  *
  * @param folderName(文件夹的名称)
  */
 public static boolean makeFolder(String folderName)throws IOException {
  File file = new File(folderName);
  if (!file.exists()) {
   file.mkdir();
  } else {
   file.delete();
  }
  return true;
 }

 /**
  * 创建一个文件 这个文件是没有上级目录的
  *
  * @param fileName
  *            (文件名称)
  */
 public static boolean makeFile(String fileName) throws IOException {
  File file = new File(fileName);
  if (!file.exists()) {
   file.createNewFile();
   return true;
  } else {
   // 文件已经存在,先进行删除,通过递归调用进行重新创建
   file.delete();
   makeFile(fileName);
   return true;
  }
 }

 /**
  * 重载创建文件的方法 这个文件是有上级目录的
  *
  * @param folder(文件的目录)
  * @param fileName(文件的名称)
  */
 public static boolean makeFolderFile(String folder, String fileName)
   throws IOException {
  // 1.先创建文件目录
  makeFolder(folder);
  // 2.结合目录在创建文件
  File file = new File(folder + "//" + fileName);
  if (!file.exists()) {
   file.createNewFile();
   return true;
  } else {
   // 文件已经存在,先进行删除,通过递归调用进行重新创建
   file.delete();
   makeFolderFile(folder, fileName);
   return true;
  }
 }

 /**
  * 字节流读取文件
  *
  * @param file
  *            指定文件的位置和名称
  */
 public static String readFileByInpuStream(String file) throws IOException {
  String str = null;

  FileInputStream fis = null;
  try {
   File f = new File(file);
   fis = new FileInputStream(f);
   byte[] bt = new byte[fis.available()];
   fis.read(bt);
   str = new String(bt);

  } catch (Exception e) {
   // TODO: handle exception
   System.out.println("文件不存在,读取文件失败");
  } finally {
   fis.close();
  }
  return str;
 }

 /**
  * 将单个字符串内容写入文本文件
  *
  * @param content(要写的文件的内容)
  * @param filePath(文件的目录)
  * @param fileName(文件)
  */
 public static boolean writeFile(String content, String filePath,
   String fileName) throws IOException {
  if (null == content || "".equals(content)) {
   System.out.println("写入的内容为空");
  } else {
   File f = new File(filePath+"//"+fileName);
   FileWriter fw = new FileWriter(f);
   fw.write(content);
   fw.close();
  }
  return true;
 }

 /**
  * 将字符串数组内容写入文本文件
  *
  * @param content(要写的文件的内容)
  * @param filePath(文件的目录)
  * @param fileName(文件)
  */
 public static boolean writeFile(String[] args, String filePath,
   String fileName) throws IOException {
  if (args.length <= 0) {
   System.out.println("写入的内容为空");
  } else {
   FileWriter fw = new FileWriter(filePath +"//"+ fileName);
   PrintWriter out = new PrintWriter(fw);
   for (int i = 0; i < args.length; i++) {
    out.write(args[i]);
    out.println();
    out.flush();
   }
   fw.close();
   out.close();
  }
  return true;
 }

 /**
  * 读取文件中的所有内容
  *
  * @param filePath
  * @param fileName
  * @throws IOException
  */
 public static String readAllFile(String filePath, String fileName)
   throws IOException {
  String str = "";
  FileReader fr = new FileReader(filePath + fileName);
  int count = fr.read();
  while (count != -1) {
   char c = (char) count;
   str += String.valueOf(c);
   count = fr.read();
   if (count == 13) {
    fr.skip(1);
   }
  }
  fr.close();
  return str;
 }

 /**
  * 一行一行的读取文件中的数据
  *
  * @param filePath
  * @param fileName
  * @throws IOException
  */
 public static String readLineFile(String filePath, String fileName)
   throws IOException {
  FileReader fr = new FileReader(filePath + fileName);
  BufferedReader br = new BufferedReader(fr);
  String line = br.readLine();
  StringBuffer sb=new StringBuffer();
  while (line != null) {
   sb.append(line);
   line=br.readLine();
  }
  br.close();
  fr.close();
  return sb.toString();
 }

 /**
  * 输出目录中的所有文件及目录名字
  *
  * @param filePath
  */
 public static void readFolderByFile(String filePath) throws IOException {
  File file = new File(filePath);
  File[] tempFile = file.listFiles();
  for (int i = 0; i < tempFile.length; i++) {
   if (tempFile[i].isFile()) {
    System.out.println("File : " + tempFile[i].getName());
    System.out.println(tempFile[i].length() + "字节");
   }
   if (tempFile[i].isDirectory()) {
    System.out.println("Directory : " + tempFile[i].getName());

    readFolderByFile(filePath + "//" + tempFile[i].getName());
   }
  }
 }

 /**
  * copy文件夹(文件目录)
  *
  * @param src(源文件的名称)
  * @param dest(移动到的目标路径)
  */
 public static boolean copyFolder(String srcFolderName, String dest)
   throws IOException {
  if (null == srcFolderName || "".equals(srcFolderName) || null == dest
    || "".equals(dest)) {
   System.out.println("路径为空,无法复制");
   return false;
  } else {
   File file = new File(srcFolderName);
   String folderName;
   if (file.isDirectory()) {
    folderName = file.getName();
    File f = new File(dest + "//" + folderName);
    f.mkdir();
    System.out.println("复制完成");
   } else {
    System.out.println("复制失败");
    return false;
   }
  }
  return true;
 }

 /**
  * copy文件
  */
 public static boolean copyFile(String srcFile, String destFolder)
   throws IOException {
  // makeFile
  // makeFolderFile
  String folder="";
  String fileName;
  File file = new File(srcFile); //file.getName()
  //读取文件的内容
  FileReader fr = new FileReader(file);
  BufferedReader br = new BufferedReader(fr);
  String line = br.readLine();
  StringBuffer sb=new StringBuffer();
  while (line != null) {
   sb.append(line);
   line = br.readLine();
  }
  br.close();
  fr.close();
  
  System.out.println(file.getName());
  if(file!=null){
    File f=file.getParentFile();
    folder=f.getName();
    if(f.getParentFile()!=null){
    
     if(f.getParent()==null){
      fileName=destFolder+"//"+folder;//+"//";+file.getName();
      System.out.println(fileName);
      makeFolderFile(fileName,file.getName());
     
      //将要复制的文件的内容写入目标文件中
      writeFile(new String[]{sb.toString()},fileName,file.getName());
     }else{
       fileName=destFolder+"//"+f.getParentFile().getName()+"//"+folder;
       //makeFolderFile(fileName,file.getName());
       System.out.println(fileName);
       makeFolder(destFolder+"//"+f.getParentFile().getName());
       makeFolder(fileName);
       //makeFile(fileName+"//"+file.getName());
     //将要复制的文件的内容写入目标文件中
       writeFile(new String[]{sb.toString()},fileName,file.getName());
     }
    }
  }
  return true;
 }

 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值