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;
}


}

版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值