`

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


}

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

分享到:
评论

相关推荐

    文件操作方式集合源代码

    通过这个源代码集合,开发者可以学习到如何在实际项目中有效地实现各种文件操作,同时了解如何在不同的操作系统环境下调试和测试代码。对于初学者来说,这是理解文件操作机制并提升编程技能的好资源。

    C# File文件操作

    总的来说,C#的File类提供了一套完整的文件操作API,满足了大部分日常的文件处理需求。通过深入理解并结合源码分析,开发者可以更好地利用这些功能来构建高效且可靠的文件系统应用。在实际项目中,一定要注意处理...

    java 操作文件通用方法集合

    本文将深入解析一个名为`FileUtils`的类,该类封装了一系列用于文件操作的通用方法,旨在提高代码的复用性和效率。 #### 1. `getResourceStream`方法 此方法用于根据相对路径获取输入流,主要用于读取类路径下的...

    File 上传文件以及图片

    3. **C#后端处理**: 在file1.aspx.cs中,可以使用`Request.Files`集合获取上传的文件。每个`HttpPostedFileBase`对象都包含文件的信息,如名称、大小、类型等,可以通过`SaveAs`方法将其保存到服务器。 4. **图片...

    file_operate.rar_文件_文件操作

    本资源"file_operate.rar"显然是一个关于文件操作的集合,包含了源代码示例和可能的文档资料,帮助开发者深入理解并实践文件操作的相关知识。 首先,我们来看"file.cpp"这个文件,它很可能是一个C++语言编写的源...

    java+selenium+file+excel文件中心集合测试

    本话题聚焦于使用Java、Selenium和File操作与Excel文件进行中心集合测试,这是一种常见且实用的测试策略。以下是对这些技术及其应用的详细解析: 1. **Java**: Java是一种广泛使用的面向对象的编程语言,以其跨平台...

    file.rar,多种文件格式测试数据集合

    这个名为"file.rar"的压缩包文件是一个测试数据集合,包含了各种常见的文件格式,如CSV、TXT、JSON和日志文件等。这些格式各自拥有独特的用途和结构,对于理解和操作数据至关重要。 1. CSV(Comma Separated Values...

    2024Map集合,Stream流,File文件

    - 文件操作可能会抛出异常,应妥善处理。 通过以上介绍可以看出,`Map`集合、`Stream`流以及`File`类都是Java编程中的重要概念和技术,它们各自解决了不同的问题,并提供了丰富的功能来满足开发需求。掌握这些技术...

    java 文件管理集合

    `java.nio.file.Files` 类提供了很多静态方法用于执行文件操作,如 `Files.copy()`, `Files.delete()`, `Files.readAllBytes()` 等。 7. **Path**:`java.nio.file.Path` 表示文件系统的路径,提供了创建、解析、...

    File2Array(文件转数组工具).zip

    "File2Array(文件转数组工具)"就是这样的一个实用程序,它专为编程人员设计,能够将文件内容转换为数组,方便在各种编程任务中使用。这个工具的核心功能是将文件的数据读取并结构化为数组形式,从而简化了处理文件...

    C语言文件操作函数大全(详细讲解)

    C语言文件操作函数大全是指在C语言中对文件进行各种操作的函数集合,包括文件的打开、关闭、读取、写入、追加等操作。这些函数是C语言编程中非常重要的一部分,掌握这些函数可以帮助程序员更好地处理文件操作。 ...

    File源码,可以熟悉File的基本操作

    在C#编程中,`System.IO.File`和`System.IO.FileInfo`类是处理文件操作的核心组件。这两个类提供了丰富的API,使得开发者可以方便地进行读取、写入、创建、删除、移动等文件操作。这里我们将深入探讨这两个类以及与`...

    C#对tiff文件操作类

    本项目聚焦于使用C#处理TIFF(Tagged Image File Format)图像文件,这是一种常用于存储多页图像和扫描文档的格式。下面将详细阐述如何在C#中操作TIFF文件,并实现文件的拆分、显示以及合并功能。 首先,了解TIFF...

    file_write_read.rar_file操作

    在IT行业中,文件操作是程序设计的基本组成部分,无论是读取数据、存储信息还是与其他系统进行交互,文件操作都起着至关重要的作用。本主题聚焦于“file_write_read.rar_file操作”,我们将深入探讨如何在编程中读写...

    QBasic的文件操作

    ### QBasic的文件操作知识点详解 #### 一、文件概念及分类 - **文件定义**: - 文件,又称文档,是指存储在磁盘(包括硬盘、软盘、U盘、光盘)上的数据集合。 - 每个文件都有一个唯一的文件全名用于标识。 - ...

    C++流类体系与文件操作

    在C++编程中,流(Stream)是一种抽象概念,它代表了数据的流动,使得数据可以从一种媒介...通过流类,我们可以轻松地实现不同媒介之间的数据传输,而文件操作则让程序能够持久化数据,为软件开发提供了极大的便利。

    中国地区shape file文件

    这个名为“中国地区shape file文件”的资源包含全国范围内的行政区划数据,分为三级,即省级、市级和区县级,提供了详细的地理边界信息。 1. **Shapefile介绍**:Shapefile并非单一文件,而是一组以.shp、.shx、....

    拷贝文件到指定文件夹,还有其他的文件操作

    在IT行业中,文件操作是日常开发任务中的基本环节,无论是拷贝、移动、删除还是创建新文件,都属于文件操作的范畴。在这个场景下,我们主要关注如何将文件拷贝到指定的文件夹以及可能涉及的其他文件操作。在Python等...

    C文件操作和解析

    ### C文件操作和解析知识点详解 #### 一、文件概念及分类 - **文件定义**:文件是指一组相关数据的有序集合,具有特定的名称(文件名)。 - **文件存储位置**:文件通常存储在外部介质(如磁盘)上,使用时会被...

Global site tag (gtag.js) - Google Analytics