`

java io操作本地文件

 
阅读更多
package com.tw.file.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.io.StringWriter;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.AndFileFilter;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.filefilter.NotFileFilter;
import org.apache.commons.io.filefilter.SuffixFileFilter;

import com.tw.str.util.StringToolkit;

//import org.apache.commons.io.filefilter.*;
/**
* 对文件操作的工具类(复制,删除,移动) 需引入包commons-io-1.2.jar
*
* @author tw 2009-07-16
*
*/
public final class Ts {

public static void main(String[] args) {
//待测方法.....
}

/**
* 复制文件或者目录,复制前后文件完全一样。
*
* @author tw 2009-07-16
* @param resFilePath
*            源文件路径
* @param distFolder
*            目标文件夹
* @IOException 当操作发生异常时抛出
*/
public static void copyFile(String resFilePath, String distFolder)
throws IOException {
File resFile = new File(resFilePath);
File distFile = new File(distFolder);
if (resFile.isDirectory()) { // 目录时
FileUtils.copyDirectoryToDirectory(resFile, distFile);
} else if (resFile.isFile()) { // 文件时
// FileUtils.copyFileToDirectory(resFile, distFile, true);
FileUtils.copyFileToDirectory(resFile, distFile);
}
}

/**
* 删除一个文件或者目录
*
* @author tw 2009-07-16
* @param targetPath
*            文件或者目录路径
* @IOException 当操作发生异常时抛出
*/
public static void deleteFile(String targetPath) throws IOException {
File targetFile = new File(targetPath);
if (targetFile.isDirectory()) {
FileUtils.deleteDirectory(targetFile);
} else if (targetFile.isFile()) {
targetFile.delete();
}
}

/**
* 移动文件或者目录,移动前后文件完全一样,如果目标文件夹不存在则创建。
*
* @param resFilePath
*            源文件路径
* @param distFolder
*            目标文件夹
* @IOException 当操作发生异常时抛出
*/
public static void moveFile(String resFilePath, String distFolder)
throws IOException {
File resFile = new File(resFilePath);
File distFile = new File(distFolder);
if (resFile.isDirectory()) {
// FileUtils.moveDirectoryToDirectory(resFile, distFile);
} else if (resFile.isFile()) {
// FileUtils.moveFileToDirectory(resFile, distFile, true);
}
}

/**
* 重命名文件或文件夹
*
* @param resFilePath
*            源文件路径
* @param newFileName
*            重命名
* @return 操作成功标识
*/
public static boolean renameFile(String resFilePath, String newFileName) {
// 格式化路径
String newFilePath = StringToolkit.formatPath(StringToolkit
.getParentPath(resFilePath)
+ "/" + newFileName);
File resFile = new File(resFilePath);
File newFile = new File(newFilePath);
return resFile.renameTo(newFile);
}

/**
* 读取文件或者目录的大小
*
* @param distFilePath
*            目标文件或者文件夹
* @return 文件或者目录的大小,如果获取失败,则返回-1
*/
public static long genFileSize(String distFilePath) {
File distFile = new File(distFilePath);
if (distFile.isFile()) {
return distFile.length();
} else if (distFile.isDirectory()) {
return FileUtils.sizeOfDirectory(distFile);
}
return -1L;
}

/**
* 判断一个文件是否存在
*
* @param filePath
*            文件路径
* @return 存在返回true,否则返回false
*/
public static boolean isExist(String filePath) {
return new File(filePath).exists();
}

/**
* 本地某个目录下的文件列表(不递归)
*
* @param folder
*            ftp上的某个目录
* @param suffix
*            文件的后缀名(比如.mov.xml)
* @return 文件名称列表
*/
public static String[] listFilebySuffix(String folder, String suffix) {
IOFileFilter fileFilter1 = new SuffixFileFilter(suffix);
IOFileFilter fileFilter2 = new NotFileFilter(
DirectoryFileFilter.INSTANCE);
FilenameFilter filenameFilter = new AndFileFilter(fileFilter1,
fileFilter2);
return new File(folder).list(filenameFilter);
}

/**
* 将字符串写入指定文件(当指定的父路径中文件夹不存在时,会最大限度去创建,以保证保存成功!)
*
* @param res
*            原字符串
* @param filePath
*            文件路径
* @return 成功标记
*/
public static boolean string2File(String res, String filePath) {
boolean flag = true;
BufferedReader bufferedReader = null;
BufferedWriter bufferedWriter = null;
try {
File distFile = new File(filePath);
if (!distFile.getParentFile().exists()) {// 不存在时创建
distFile.getParentFile().mkdirs();
}
bufferedReader = new BufferedReader(new StringReader(res));
bufferedWriter = new BufferedWriter(new FileWriter(distFile));
char buf[] = new char[1024]; // 字符缓冲区
int len;
while ((len = bufferedReader.read(buf)) != -1) {
bufferedWriter.write(buf, 0, len);
}
bufferedWriter.flush();
bufferedReader.close();
bufferedWriter.close();
} catch (IOException e) {
flag = false;
e.printStackTrace();
}
return flag;
}

/**
* 文本文件转换为指定编码的字符串
*
* @param file
*            文本文件
* @param encoding
*            编码类型 没有编码方式,传入NULL既可,将使用默认的编码方式
* @return 转换后的字符串
* @throws IOException
*/
public static String file2String(File file, String encoding) {
InputStreamReader reader = null;
StringWriter writer = new StringWriter();
try {
if (encoding == null || "".equals(encoding.trim())) {
reader = new InputStreamReader(new FileInputStream(file),
encoding);
} else {
reader = new InputStreamReader(new FileInputStream(file));
}
// 将输入流写入输出流
char[] buffer = new char[1024*1024];
int n = 0;
while (-1 != (n = reader.read(buffer))) {
writer.write(buffer, 0, n);
}
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 返回转换结果
if (writer != null)
return writer.toString();
else
return null;
}

}
分享到:
评论

相关推荐

    java_io.rar_java 文件操作_java 读取 本地文件_java.io转动_文件操作

    本资源“java_io.rar”提供了关于如何在Java中进行文件操作的示例代码,包括读取、移动、删除和复制文件等常见任务。我们将深入探讨这些主题,以便更好地理解Java I/O API的使用。 首先,让我们从读取本地文件开始...

    javaIO操作简单例子

    FileInputStream 是 InputStream 的一个具体实现,主要用于从本地文件系统读取数据。创建FileInputStream对象时,需要传入一个File对象或文件路径字符串,之后可以通过调用read()方法来逐个读取文件中的字节。read()...

    java操作本地文件

    Java 操作本地文件是软件开发中的基础操作,尤其在服务器端编程中不可或缺。Java 的 I/O(输入/输出)库提供了丰富的类和方法,使得我们可以方便地进行文件的创建、读取、写入、删除、重命名等操作。在本教程中,...

    JAVA直接打开本地文件

    在Java编程语言中,直接打开本地文件是一项基本但至关重要的任务。这主要涉及到I/O(输入/输出)操作,这是所有程序与外部世界交互的基础。本文将深入探讨如何使用Java来打开本地文件,包括HTML文件和文本文件。 ...

    java applet 操作本地文件

    ### Java Applet 操作本地文件 #### 知识点一:Java Applet 概述 Java Applet 是一种能够在浏览器中运行的小型应用程序,它利用Java语言编写,并通过Web服务器发送到客户端。用户无需安装即可在支持Java的浏览器中...

    java实现的本地文件管理器,java实现文件管理系统,Java

    在Java编程语言中,开发一个本地文件管理器是一项常见的任务,尤其对于学习和理解I/O流、文件操作以及用户界面设计至关重要。这个项目的目标是创建一个类似Windows资源管理器的应用,能够显示本地文件系统的内容,...

    Java IO流和文件操作实现过程解析

    Java IO流和文件操作实现过程解析 Java IO流和文件操作实现过程解析是Java语言中的一种基本操作,IO流是Java中处理输入输出的基础。Java中的IO流主要包括两种类型:字节流和字符流。字节流用于处理二进制数据,而...

    java删除本地文件.txt

    本文将详细介绍如何使用Java程序删除本地文件。这涉及到对Java标准库中的`java.io.File`类的理解与应用。 ### 一、理解`java.io.File` `java.io.File`是Java中用于表示文件路径名的抽象表示形式的类。它提供了一...

    用java写的本地文件操作

    以上就是“用Java写的本地文件操作”这个项目涉及的主要技术点。通过理解并实践这些知识点,开发者可以熟练地在Java应用程序中进行文件操作,无论是简单的文本文件还是更复杂的二进制文件。在实际开发中,还需要考虑...

    java_IO操作_(读写、追加、删除、移动、复制、修改

    Java中的IO操作是进行文件处理的核心技术之一,涵盖了读写、追加、删除、移动、复制、修改等基本功能。本文将围绕这些操作展开详细解释,重点解析如何使用Java进行文件的读取。 ### 一、Java IO读取文件内容 #### ...

    java_io_文件操作_复制_删除_移动_下载

    ### Java IO 文件操作详解 #### 一、引言 在Java编程中,文件操作是非常基础且重要的功能之一。本文将详细介绍如何使用Java IO来进行文件的基本操作,包括复制、删除、移动以及下载等实用功能。通过具体的代码示例...

    java IO流实例,包括文件的读写、上传和下载

    总结来说,Java IO流是处理输入输出的核心工具,无论是在本地文件系统还是在网络环境中,都能提供高效、灵活的文件操作手段。通过组合不同的流类,可以实现复杂的文件读写、上传和下载任务,同时适应文本和非文本...

    Java 基于对本地文件读写操作完成的登陆注册

    总的来说,这个项目是一个基础的文件操作示例,帮助学生理解Java的IO流概念,以及如何利用文件进行数据持久化。它展示了如何在没有数据库支持的情况下实现基本的用户管理功能。然而,对于实际项目,我们通常会采用...

    通过IO流把文件传到前端并下载.zip

    文件流(FileInputStream和FileOutputStream)用于与本地文件系统交互,而字节流(如InputStream和OutputStream)和字符流(如Reader和Writer)则用于处理二进制和文本数据。在传输文件时,我们通常会使用...

    java io.pdf

    10. **国际化和本地化**:Java的Locale类和ResourceBundle类支持多语言环境下的I/O操作,允许根据用户的地区设置显示相应的文本。 Java IO的强大在于其灵活性和可扩展性,能够处理各种类型的数据源和目标,同时提供...

    java 监听本地文件自动上传服务器

    本篇文章将详细探讨如何使用Java实现本地文件监听,并自动将其上传至服务器,以实现文件同步功能。 首先,让我们从“JAVA 监听文件夹变化”这个知识点开始。Java提供了一种称为`WatchService`的机制,它允许程序...

    java创建和删除文件夹、文件.doc

    System.out.println("新建文件操作出错"); e.printStackTrace(); } } ``` **注意点:** 1. **文件存在性检查**:创建前检查文件是否存在。 2. **异常类型**:创建文件可能会抛出`IOException`。 #### 五、删除...

    java小项目练习IO实现

    在Java编程领域,IO(Input/Output)技术是不可或缺的一部分,尤其在处理数据持久化、文件操作、网络通信等方面发挥着重要作用。在这个“java小项目练习IO实现”中,我们将探讨如何利用Java的IO流来实现本地数据的...

    java IO流方式上传下载文件,源代码

    - 使用NIO(非阻塞I/O)或更高效的Apache Commons IO库,提高文件操作性能。 - 对于大量文件操作,考虑使用多线程处理,提升并发性能。 通过以上讲解,我们可以理解Java IO流在文件上传下载中的核心作用,以及`...

    java文件操作

    Apache Commons IO是一个非常实用的库,它为Java开发者提供了大量的工具类和方法,以简化文件操作。在这个场景中,我们关注的是Apache Commons IO中的`FileUtils`类,它包含了丰富的静态方法,用于执行各种文件操作...

Global site tag (gtag.js) - Google Analytics