`

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操作本地文件

    java操作本地文件 实现本地文件的增,删,改,查,重命名

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

    用java对文件操作的一些代码(包括文件读取,移动,删除,复制......)

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

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

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

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

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

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

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

    大学生简单课程设计,基于本地文件的读写来完成的一个登录注册小Demo。 不需要连接数据库,拿走就能用。

    Java流(文件读写操作)

    一、 流的分类 • 按数据流动方向 – 输入流:只能从中读取字节数据,而不能向其写出数据 – 输出流:只能向其写入字节数据,而不能从中读取数据 ...– 节点流:从/向一个特定的IO设备读/写数据的流。(低级流) – 处理

    java-io-guide:Java中的Java IO(输入和输出流)指南

    这是Java中文件处理的完整指南。 本指南的源代码在我们的本地开发环境中经过了很好的测试,并使用了静态代码分析器工具SonatLint , PMD等对代码进行了分析。本指南的源代码无缺陷,并使用JDK 8进行编译和执行。 ...

    java http方式抓取网页信息 JAVAIO

    java http方式读取网页信息,并写入本地文件,Test运行即可使用。

    Java之IO流学习总结

    ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三种基本的介质流,它们分别从Byte 数组、StringBuffer、和本地文件中读取数据。PipedInputStream 是从与其它线程共用的管道中读取数据,与Piped...

    java代码实现文件的拷贝

    Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。 Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等

    io流实现复制与简单加密

    通过输入输出流FileInputStream FileoutputStream 将本地文件复制并进行^的加密。

    java入门之io包

    运用File类进行文件操作 理解流,标准输入/输出流的概念 运用FileInputStream和FileOutputStream类读写文本文件 运用BufferedReader和BufferedWriter类读写文本文件 运用DataInputStream和DataOutputStream类 读写...

    JAVA上百实例源码以及开源项目

    摘要:Java源码,文件操作,数据压缩,文件传输  Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、...

    java将文件夹压缩成zip,解压zip压缩包

    java控制指定路径下的文件夹压缩成zip格式。 java将zip压缩包解压成为文件夹。直接使用io流进行操作,不需借助其他jar包

    java解析word文件的相关代码

    假设在本地磁盘中存在一个Word文件 E:\POI\word\JBoss3.0 下配置和部署EJB简介.doc文件是具有格式的,内容如图所示: 下面看看提取它的内容是多么简单。 首先从Apache网站上下载POI的相关jar包。 新建一个测试...

    java 读取文件

    一、多种方式读文件内容。 1、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文件内容 4、随机读取文件内容 二、将内容追加到文件尾部

    JAVA上百实例源码以及开源项目源代码

    摘要:Java源码,文件操作,数据压缩,文件传输  Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、...

    文字编辑器软件 java设计

    利用java.io包中的输入输出输出流类,负责文件的读取和写入操作。在Java的实用工具类库java.util包中,Java提供了一些实用的方法和数据结构。实现简单的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。能够...

    java_对excel_的操作源码(有备无患)

    Java Excel API既可以从本地文件系统的一个文件(.xls),也可以从输入流中读取Excel数据表。读取Excel数据表的第一步是创建Workbook(术语:工作薄),下面的代码片段举例说明了应该如何操作:(完整代码见ExcelReading....

Global site tag (gtag.js) - Google Analytics