[file]IO常用工具类IOUtils(Java读文件、写文件、打Zip包)

简介: [file]IO常用工具类IOUtils(Java读文件、写文件、打Zip包)http://www.bieryun.com/1003.html 功能目录: 将输入流转换成字节流将文件读取为一个字符串以指定编码格式将输入流按行置入一个List<String>以GBK格式将输入流按行置入一个List.

[文件] IO常用工具类IOUtils(Java读文件,写文件,打Zip包)http://www.bieryun.com/1003.html


功能目录:

  1. 将输入流转换成字节流
  1. 将文件读取为一个字符串
  1. 以指定编码格式将输入流按行置入一个列表<字符串>
  1. 以GBK格式将输入流按行置入一个列表<字符串>
  1. 转换为每行补充指定换行符(例如: “\ n”, “</ BR>”)
  1. 将字符串转出到指定文件
  1. 将多个文件打成一个拉链包

 

源码:

[java]查看纯文本

  1.  amosryan.utility.file;
  2. import  java.io.BufferedReader;
  3. import  java.io.ByteArrayOutputStream;
  4. import  java.io.File;
  5. import  java.io.FileInputStream;
  6. import  java.io.FileOutputStream;
  7. import  java.io.FileWriter;
  8. import  java.io.IOException;
  9. import  java.io.InputStream;
  10. import  java.io.InputStreamReader;
  11. import  java.io.PrintWriter;
  12. import  java.util.ArrayList;
  13. import java.util.List;
  14. import java.util.zip.ZipEntry;
  15. import java.util.zip.ZipOutputStream;
  16. /**
  17.  * IO常用工具包
  18.  * @author amosryan
  19.  * @since 2010-06-03
  20.  */
  21. public class IOUtils {
  22.     /**
  23.      * 将输入流转换成字节流
  24.      * @param input
  25.      * @return
  26.      * @throws Exception
  27.      */
  28.     public static byte[] toBytes(InputStream input) throws Exception {
  29.         byte[] data = null;
  30.         try {
  31.             ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
  32.             byte[] b = new byte[1024];
  33.             int read = 0;
  34.             while ((read = input.read(b)) > 0) {
  35.                 byteOut.write(b, 0, read);
  36.             }
  37.             data = byteOut.toByteArray();
  38.         } catch (Exception e) {
  39.             e.printStackTrace();
  40.         } finally {
  41.             input.close();
  42.         }
  43.         return data;
  44.     }
  45.     /**
  46.      * 将文件读取为一个字符串
  47.      * 
  48.      * @param input
  49.      * @return
  50.      * @throws Exception
  51.      */
  52.     public static String toString(File file) throws Exception {
  53.         return toString(new FileInputStream(file));
  54.     }
  55.     /**
  56.      * 将输入流转换为一个串
  57.      * 
  58.      * @param input
  59.      * @return
  60.      * @throws Exception
  61.      */
  62.     public static String toString(InputStream input) throws Exception {
  63.         return toStringWithLineBreak(input, null);
  64.     }
  65.     /**
  66.      * 以指定编码格式将输入流按行置入一个List<String>
  67.      * 
  68.      * @param input
  69.      * @return
  70.      * @throws Exception
  71.      */
  72.     public static List<String> toLines(InputStream input, String encoding)
  73.             throws Exception {
  74.         InputStreamReader insreader = new InputStreamReader(input, encoding);
  75.         BufferedReader bin = new BufferedReader(insreader);
  76.         List<String> lines = new ArrayList<String>();
  77.         String line;
  78.         while ((line = bin.readLine()) != null) {
  79.             lines.add(line);
  80.         }
  81.         bin.close();
  82.         insreader.close();
  83.         return lines;
  84.     }
  85.     /**
  86.      * 以GBK格式将输入流按行置入一个List<String>
  87.      * 
  88.      * @param input
  89.      * @return
  90.      * @throws Exception
  91.      */
  92.     public static List<String> toLines(InputStream input) throws Exception {
  93.         return toLines(input, "GBK");
  94.     }
  95.     /**
  96.      * 转换为每行补充指定换行符(例如:"/n","</br>")
  97.      * 
  98.      * @param input
  99.      * @param lineBreak
  100.      * @return
  101.      * @throws Exception
  102.      */
  103.     public static String toStringWithLineBreak(InputStream input,
  104.             String lineBreak) throws Exception {
  105.         List<String> lines = toLines(input);
  106.         StringBuilder sb = new StringBuilder(20480);
  107.         for (String line : lines) {
  108.             sb.append(line);
  109.             if (lineBreak != null) {
  110.                 sb.append(lineBreak);
  111.             }
  112.         }
  113.         return sb.toString();
  114.     }
  115.     /**
  116.      * 将字符串转出到指定文件
  117.      * @param saveFile
  118.      * @param content
  119.      */
  120.     public static void toFile(File saveFile, String content) {
  121.         File parent = saveFile.getParentFile();
  122.         if (!parent.exists()) {
  123.             parent.mkdirs();
  124.         }
  125.         PrintWriter out = null;
  126.         try {
  127.             out = new PrintWriter(new FileWriter(saveFile));
  128.             out.print(content);
  129.             out.flush();
  130.         } catch (Exception e) {
  131.             e.printStackTrace();
  132.         } finally {
  133.             if (out != null) {
  134.                 out.close();
  135.             }
  136.         }
  137.     }
  138.     /**
  139.      * 将一组文件打zip包
  140.      * 
  141.      * @param srcFiles
  142.      * @param targetFileName
  143.      * @throws IOException
  144.      */
  145.     public static void filesToZip(List<File> srcFiles, String targetFileName)
  146.             throws IOException {
  147.         String fileOutName = targetFileName + ".zip";
  148.         byte[] buf = new byte[1024];
  149.         FileInputStream in = null;
  150.         FileOutputStream fos = null;
  151.         ZipOutputStream out = null;
  152.         try {
  153.             fos = new FileOutputStream(fileOutName);
  154.             out = new ZipOutputStream(fos);
  155.             for (File file : srcFiles) {
  156.                 in = new FileInputStream(file);
  157.                 out.putNextEntry(new ZipEntry(file.getName()));
  158.                 int len;
  159.                 while ((len = in.read(buf)) != -1) {
  160.                     out.write(buf, 0, len);
  161.                 }
  162.                 if (in != null) {
  163.                     in.close();
  164.                 }
  165.             }
  166.         }  捕获  (例外五){
  167.             e.printStackTrace();
  168.         }  最后  {
  169.             if  (in!=  null){
  170.                 附寄();
  171.             }
  172.             if  (fos!=  null){
  173.                 out.closeEntry();
  174.                 out.close();
  175.                 fos.close();
  176.             }
  177.         }
  178.     }
  179.     public  static  void  main(String [] args){
  180.         尝试  {
  181.             文件doc1 =   文件(
  182.                     “E://workspace//test//doc//1272531757100_1.doc”);
  183.             IOUtils.toString(new  FileInputStream(doc1));
  184.         }  捕获  (例外五){
  185.             e.printStackTrace();
  186.         }
  187.     }
  188. }
目录
打赏
0
0
0
0
101
分享
相关文章
|
5月前
|
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
134 9
[Java计算机毕设]基于ssm的OA办公管理系统的设计与实现,附源码+数据库+论文+开题,包安装调试
OA办公管理系统是一款基于Java和SSM框架开发的B/S架构应用,适用于Windows系统。项目包含管理员、项目管理人员和普通用户三种角色,分别负责系统管理、请假审批、图书借阅等日常办公事务。系统使用Vue、HTML、JavaScript、CSS和LayUI构建前端,后端采用SSM框架,数据库为MySQL,共24张表。提供完整演示视频和详细文档截图,支持远程安装调试,确保顺利运行。
65 17
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件
本文详细介绍了Linux中的进程IO与系统调用,包括 `open`、`write`、`read`和 `close`函数及其用法,解释了文件描述符(fd)的概念,并深入探讨了Linux中的“一切皆文件”思想。这种设计极大地简化了系统编程,使得处理不同类型的IO设备变得更加一致和简单。通过本文的学习,您应该能够更好地理解和应用Linux中的进程IO操作,提高系统编程的效率和能力。
88 34
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
37 4
解锁“分享文件”高效密码:探秘 Java 二叉搜索树算法
在信息爆炸的时代,文件分享至关重要。二叉搜索树(BST)以其高效的查找性能,为文件分享优化提供了新路径。本文聚焦Java环境下BST的应用,介绍其基础结构、实现示例及进阶优化。BST通过有序节点快速定位文件,结合自平衡树、多线程和权限管理,大幅提升文件分享效率与安全性。代码示例展示了文件插入与查找的基本操作,适用于大规模并发场景,确保分享过程流畅高效。掌握BST算法,助力文件分享创新发展。
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
451 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
4月前
|
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
138 34
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
68 0
【JavaEE】——文件IO(万字长文)
文件路径,文本文件,二进制文件,File类,文件流,字节流(InputStream,OutputStream)字符流(Reader,Writer)

热门文章

最新文章