`
sgm881218
  • 浏览: 58337 次
社区版块
存档分类
最新评论

java实用工具(文件)

    博客分类:
  • java
阅读更多
package com.omg.web.util;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.nio.channels.FileChannel;
import java.util.Date;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.omg.soap.service.EBookingMethod;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class FileUtil {

private static final Log LOG = LogFactory.getLog(FileUtil.class);

/**
* 取得文件后缀名
*
* @param fileName
*            文件名
* @return
*/
public static String getFileExtention(String fileName) {
if (null == fileName || fileName.equals("")) {
return "";
}

int i = fileName.lastIndexOf(".");
if (i > 0 && i < fileName.length()) {
return fileName.substring(i);
}
return "";
}

/**
* 文件是否存在
*
* @param filePath
*            文件物理地址
* @return
*/
public static boolean fileExists(String filePath) {
File file = new File(filePath);
return file.exists();
}

/**
* 建立文件夹
*
* @param filePath
*            文件夹路径
* @return
*/
public static File createDirectory(String filePath) {
File file = new File(filePath);

if (!file.exists()) {
file.mkdirs();
}

return file;
}

/**
* 复制文件
*
* @param src
*            源文件
* @param dst
*            目标文件
* @throws IOException
*/
public static void copy(File src, File dst) throws IOException {

FileChannel srcChannel = new FileInputStream(src).getChannel();
FileChannel destChannel = new FileOutputStream(dst).getChannel();
try {

srcChannel.transferTo(0, srcChannel.size(), destChannel);

} finally {
srcChannel.close();
destChannel.close();
}

}

/**
* 下载网络文件保存到本地
*
* @param path
*            网络url
* @param filepath
*            本地保存地址
* @throws Exception
*/
public static boolean downloadFile(String path, String filepath)
throws Exception {
LOG.info("下载图片路径:【" + path + "】");
LOG.info("保存文件路径:【" + filepath + "】");
int line;
byte[] read = new byte[1024];
InputStream in = null;
FileOutputStream out = null;

try {
URL url = new URL(path);
in = url.openStream();
out = new FileOutputStream(filepath);
while ((line = in.read(read)) > 0) {
out.write(read, 0, line);
}
return true;
} catch (Exception e) {
LOG.error(new FileUtil(), e);
LOG.error("下载图片路径:【" + path + "】 failure");
} finally {
if (null != in) {
in.close();
}
if (null != out) {
out.close();
}
}
return false;
}

/**
* 读文件
*
* @param filePath
*            文件地址
* @return
* @throws Exception
*/
public static String readFromFile(String filePath) throws Exception {
String content = null;
FileInputStream fis = null;
try {
fis = new FileInputStream(filePath);
int length = fis.available();
LOG.debug(filePath + "-->file size : " + length);

byte bytes[] = new byte[length];
fis.read(bytes);

content = new String(bytes, "utf-8");

} catch (Exception e) {
LOG.error(e);
throw new Exception(e);
} finally {
if (fis != null) {
fis.close();
}
}
LOG.debug("###### " + filePath + "读取完成。######");
return content;
}

/**
* 写文件
*
* @param content
*            内容
* @param filePath
*            文件地址
* @throws Exception
*/
public static void writeToFile(String content, String filePath)
throws Exception {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(filePath);
byte tag_bytes[] = content.getBytes("utf-8");
fos.write(tag_bytes);

} catch (Exception e) {
LOG.error(e);
throw new Exception(e);
} finally {
if (fos != null) {
fos.close();
}
}
LOG.debug("###### " + filePath + "写入完成。######");
}

/**
* 文件流保存
*
* @param io
*            base64文件流
* @param filePath
* @throws Exception
*/
public static void base64ToFile(String io, String filePath)
throws Exception {
FileOutputStream fos = null;
try {
BASE64Decoder decode = new BASE64Decoder();
fos = new FileOutputStream(filePath);
fos.write(decode.decodeBuffer(io));
fos.close();
} catch (Exception e) {
LOG.error(e);
throw new Exception(e);
} finally {
if (null != fos) {
fos.close();
}
}
}

/**
* 生成BASE64文件流
*
* @param filePath
* @return
* @throws Exception
*/
public static String readFileToBase64(String filePath) throws Exception {
FileInputStream io = null;
try {
io = new FileInputStream(new File(filePath));
byte[] b = new byte[io.available()];
io.read(b);
BASE64Encoder encode = new BASE64Encoder();
return encode.encode(b);
} catch (Exception e) {
LOG.error(e);
throw new Exception(e);
} finally {
if (null != io) {
io.close();
}
}
}

public static void deleteFile(String filePath) throws Exception {
try {
File f = new File(filePath);
if (f.exists()) {
f.delete();
}
} catch (Exception e) {
LOG.error(e);
throw new Exception(e);
}
}

/**
* 下载文件
*
* @param file
* @param resp
* @throws Exception
*/
public static void getFileIO(File file, HttpServletResponse resp)
throws Exception {
InputStream fis = null;
OutputStream toClient = null;
try {
// 以流的形式下载文件。
fis = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
resp.reset();
// 设置response的Header
resp.addHeader("Content-Disposition", "attachment;filename="
+ new String(file.getName().getBytes()));
resp.addHeader("Content-Length", "" + file.length());
toClient = new BufferedOutputStream(resp.getOutputStream());
resp.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (Exception e) {
LOG.error(e);
throw new Exception(e);
} finally {
if (null != fis) {
fis.close();
}
if (null != toClient) {
toClient.close();
}
}
}

/*
* public static void main(String[] args) { try { FileInputStream io = new
* FileInputStream(new File("f:/d.png")); byte[] b = new
* byte[io.available()]; io.read(b); BASE64Encoder encode = new
* BASE64Encoder(); FileUtil.writeToFile(encode.encode(b), "f:/2.txt");
* String s = EBookingMethod.getStringResult(
* "E:\\xml\\getProcessTaskGraphic_3_response.xml");
* FileUtil.base64ToFile(s, "f:/003.jpg"); } catch (Exception e) { // TODO
* Auto-generated catch block e.printStackTrace(); } }
*/
}


读取text文件:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

public class ReadTextFile {
public BufferedReader bufread;
public BufferedWriter bufwriter;
File writefile;
String filepath, filecontent, read;
String readStr = "" ;
// 从文本文件中读取内容
public String readfile(String path)
{
try {
filepath = path; // 得到文本文件的路径
File file = new File(filepath);
FileReader fileread = new FileReader(file);
bufread = new BufferedReader(fileread);
while ((read = bufread.readLine()) != null ) {
read = read + " \r\n " ;
readStr = readStr + read;
}
} catch (Exception d) {
System.out.println(d.getMessage());
}
return readStr; // 返回从文本文件中读取内容
}

// 向文本文件中写入内容
public void writefile(String path, String content, boolean append) {
try {
boolean addStr = append; // 通过这个对象来判断是否向文本文件中追加内容
filepath = path; // 得到文本文件的路径
filecontent = "s";//content; // 需要写入的内容
writefile = new File(filepath);
if (writefile.exists() == false ) // 如果文本文件不存在则创建它
{
writefile.createNewFile();
writefile = new File(filepath); // 重新实例化
}
FileWriter filewriter = new FileWriter(writefile, addStr);
// 删除原有文件的内容
java.io.RandomAccessFile file = new java.io.RandomAccessFile(path, "rw" );
file.setLength( 0 );
// 写入新的文件内容
filewriter.write(filecontent);
filewriter.close();
filewriter.flush();
} catch (Exception d) {
System.out.println(d.getMessage());
}
}

public static void main(String[] args) throws Exception {
ReadTextFile parse = new ReadTextFile();
String filecontent = parse.readfile( "E:/ACOM20121113.txt" );
System.out.println(filecontent);
parse.writefile( "f:/success.txt" ,filecontent, true );

}
}
分享到:
评论

相关推荐

    java实用文件小工具

    Java 实用文件小工具是一款专为IT从业者设计的高效文件管理解决方案,它包含了多项实用功能,如文件批量提取、删除以及将Oracle数据库的表结构导出为数据字典。这款工具极大地方便了日常的文件操作和数据库管理工作...

    java实用工具实例

    "java实用工具实例"这个压缩包提供了一系列实用技术的示例,包括ActiveMQ消息队列、电子邮件发送、Excel导出、接口设计、Quartz定时任务、Redis缓存操作、Socket通信以及接口和多线程的相关知识。下面将对这些技术...

    java开发实用工具

    Java开发实用工具集合是一系列对Java开发者至关重要的资源,这些工具可以帮助提高开发效率,简化工作流程。在这个压缩包中,包含了各种常用的开发jar包、开发工具以及数据库和服务器管理工具,旨在为Java开发者提供...

    java文件对比工具

    Java文件对比工具是一种用于比较两个或多个文件之间差异的实用程序,特别适用于编程环境中检查代码间的相似性或差异。在Java开发中,这样的工具能够帮助开发者有效地定位代码修改的地方,协同工作时解决合并冲突,...

    [史上最全] 文件处理工具类 java版 处理文件流, 文件目录递归等

    本文介绍了一个实用且功能全面的文件处理工具类——`FileUtils`。该类封装了50多个与文件相关的操作方法,简化了开发人员在文件操作方面的负担,无需手动处理文件流的关闭或连接池等问题,极大提高了代码的可读性...

    xml文件自动转成java对象工具

    XML文件自动转换为Java对象工具是一种实用的开发辅助软件,它可以帮助程序员快速地将XML数据映射到Java类,从而简化了数据处理的过程。在Java开发中,XML常被用作数据交换格式,但手动编写Java类来表示XML结构既耗时...

    Java加载配置文件工具类

    这个"Java加载配置文件工具类"很可能是为了解决这个问题而创建的一个实用工具,帮助开发者更方便、高效地处理配置文件。配置文件通常以.properties或.xml格式存在,用于存储应用程序的参数、配置项等。 配置文件的...

    JAVA文件传输工具

    【JAVA文件传输工具】是一个由个人开发者编写的实用程序,主要功能是实现文件的高效、安全传输,尤其擅长处理大文件。此工具基于Java编程语言,因此具备跨平台特性,可以在多种操作系统上运行,如Windows、Linux和...

    java文件传输工具

    Java文件传输工具是一种基于Java开发的应用程序,设计用于实现基本的点对点(P2P)文件传输功能。这个工具提供了简单易用的界面,让用户能够方便...如果你需要在多台设备间频繁移动文件,这个工具会是一个实用的选择。

    java判断文件编码格式 三方工具包 cpdetector_1.0.10.jar

    总的来说,`cpdetector_1.0.10.jar`是Java开发中的一个实用工具,它提供了高效且准确的文件编码检测功能,帮助开发者更好地处理文本数据,避免因编码问题而引发的程序异常。通过理解并熟练使用这类工具,可以提升...

    java代码统计工具

    总的来说,"java代码统计工具"是一个实用的开发辅助工具,通过解析.java文件,它提供了量化代码结构和质量的重要信息,对于项目管理和代码质量管理具有重要意义。它的实现涉及到文件操作、文本解析和可能的过滤策略...

    30个java工具类

    [工具类] XML 实用工具类 .java.txt [工具类] XML工具类2 .java.txt [工具类] 测试Mysql的最大连接数 .java.txt [工具类] 读取、打印输出、保存xml .java.txt [工具类] 分页split_page.jsp .jsp.txt [工具类] 获得...

    牛逼的java常用工具类

    以上仅是可能包含在"牛逼的java常用工具类"压缩包中的一部分知识点,实际内容可能还包括其他自定义的实用工具类或第三方库。这个压缩包是一个宝贵的资源,可以帮助开发者更好地理解和应用Java工具类,提升开发效率和...

    java小工具

    【标题】:“Java小工具”通常指的是用于辅助Java开发或者处理Java相关问题的一系列小巧而实用的程序。这些工具可能包括代码分析、反编译、性能监控等方面,可以帮助开发者更高效地工作。 【描述】:根据提供的博文...

    【强2】30个java工具类

    [工具类] XML 实用工具类 .java.txt [工具类] XML工具类2 .java.txt [工具类] 测试Mysql的最大连接数 .java.txt [工具类] 读取、打印输出、保存xml .java.txt [工具类] 分页split_page.jsp .jsp.txt [工具类] 获得...

    java 实用工具好用之极

    "java 实用工具好用之极"这个标题暗示了我们讨论的主题是关于Java开发中的实用工具,这些工具能够极大地提高开发效率,简化工作流程。这份礼物可能是针对软件开发人员和初学者的一个集合了各种高效Java工具的压缩包...

    wsdl文件生成java webservice 工具(附带生成后调用方法)

    总的来说,"wsdl文件生成java webservice 工具"是一个实用的开发辅助工具,尤其适合初学者和开发者调试及学习Web服务。通过这个工具,可以快速地从WSDL文件生成Java代码,大大简化了Web服务的开发过程。只要遵循上述...

    java实用组件集 源码 文件操作组件

    《Java实用组件集》是一个包含了丰富功能的Java代码库,主要关注于文件操作这一核心功能。源码的分析和理解可以帮助开发者深入学习Java文件处理的技巧和最佳实践。在这个组件集中,你将发现一系列用于创建、读取、...

    文件编码转换工具java

    “多国语言”表明该工具支持多种语言的编码转换,这对于处理不同国家和地区文件的用户来说非常实用。“批量转换”功能则表示用户可以一次性处理多个文件,大大提高了工作效率。“有源码”再次强调了用户可以查看和...

    Swing JAVA 文件比较 工具

    Java文件比较工具是一种实用程序,它允许程序员或用户对比两个或多个文本文件或二进制文件的内容,找出它们之间的差异。这样的工具在软件开发、版本控制、代码审查以及数据比较等多个场景中非常有用。在Swing中开发...

Global site tag (gtag.js) - Google Analytics