`
terrencexu
  • 浏览: 122524 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用IOUtils和FileUtils

阅读更多

文本输出应该比较常用,以前都是通过反复的创建InputStream, InputReader, OutputStream, OutputWriter等去输入输出文本,比较麻烦。

Apache提供了一个commons-io.jar包,里面有很多IO相关的工具,比如输入输出文本等,着实方便了很多。

比如读取一个文件:

 

// by FileUtils
List<String> lines = FileUtils.readLines(file, "UTF-8");

// by IOUtils
List<String> lines = IOUtils.readLines(new FileInputStream(file), "UTF-8");

 

 

写入文件:

 

// by FileUtils
FileUtils.writeLines(file, "UTF-8", lines);

// by IOUtils
IOUtils.writeLines(lines, null, new FileOutputStream(file));
 

 

FileUtils/IOUtils还有其他很多方法用于读取写入文件,或者读取输出到InputStream/OutputStream等,这里就不再一一列举,可以参考查阅对应的Java Doc

FileUtils: http://commons.apache.org/io/api-2.0/org/apache/commons/io/FileUtils.html

IOUtils: http://commons.apache.org/io/api-2.0/org/apache/commons/io/IOUtils.html

 

特殊需求:FileUtils/IOUtils中写入文本的方法看上去都是只能一次性的批量写入多行,并覆盖原有的文本,如果我们需要单行写入怎么办呢,其实在IOUtils中是提供了这样的方法的,只不过比较隐晦而已:

try {
    OutputStream os = new FileOutputStream(file, true);
    IOUtils.writeLines(lines, null, os, "UTF-8");
} catch (IOException e) {
    e.printStackTrace();
}

其实就是在初始化FileOutputStream的时候 ,第二个参数append设为true就可以了。

 

 

 

分享到:
评论

相关推荐

    java组件开发(12) IOUtils、FileUtils

    java组件开发(12) IOUtils、FileUtils

    Apache commons-io-2.5.jar

    例如,你可以使用FileUtils.copyFile()和FileUtils.moveFile()来复制或移动文件,FileUtils.deleteQuietly()安全地删除文件,而不会抛出异常。此外,FileUtils还支持目录的操作,如创建、列举目录内容以及清空目录。...

    FileUtils java web 文件上传下载工具

    本篇将详细讲解如何利用`FileUtils`实现文件的上传和下载,并介绍如何在Java Web项目中集成和使用这个工具。 首先,`FileUtils`并不是Java标准库的一部分,而是Apache Commons IO库提供的一个实用类。Apache ...

    FileUtils 的方法大全

    ### FileUtils 的方法大全 本文将详细介绍 `FileUtils` 类中提供的各种文件操作方法,这些方法在 Java 开发中非常实用,能够帮助开发者高效地完成文件处理任务...希望本文能够帮助大家更好地理解和使用 `FileUtils`。

    org.apache.commons.io.jar

    Apache Commons IO遵循Apache License 2.0,这是一个宽松的开源许可证,允许自由使用、修改和分发代码,只需保留原有的版权和许可证信息即可。压缩包中的`commons-license.txt`文件即为该库的许可证文件,详细描述了...

    commons-io-2.11.0-bin.zip

    除了FileUtils,Apache Commons IO还包含其他类,如IOUtils,提供流操作的工具方法,例如读取或写入流,以及关闭流的便利方法;LineIterator,用于逐行读取文本文件;DirectoryWalker,可以递归遍历目录树,执行...

    commons-io 包

    2. **流操作**:`StreamUtils` 和 `IOUtils` 提供了对字节流和字符流的处理。例如,你可以使用它们来读取或写入流,关闭流,或者将整个流内容转换为字符串。 3. **缓冲区操作**:`BufferedInputStream` 和 `...

    Java IO commons-io-2.5.jar

    3. 流操作:`IOUtils` 类包含各种读写、关闭流的方法,以及将流转换为字符串和反之亦然的工具。`NullOutputStream` 可以忽略写入的所有数据,用于调试或日志记录。 4. 字符集转换:`Charsets` 类提供了对常用字符集...

    commons-io-2.4.jar包

    例如,可以使用`IOUtils`在Spring的`Resource`对象和流之间进行转换,实现灵活的数据处理。 总结起来,`commons-io-2.4.jar`是Java开发中的得力助手,无论是在基本的文件操作还是复杂的流处理场景下,都能提供便捷...

    commons-io使用笔记

    Apache Commons IO 是一个Java库,提供了大量的实用工具类来处理输入/输出操作。这个库包含了对文件、流、字符集、缓冲区、过滤器...了解和熟练使用这些工具类,能够提升我们的开发效率,特别是在处理文件和流操作时。

    commons-io-1.4-src.zip_commons-_commons-fileupload_commons-io_co

    例如,当我们需要将一个大文件的内容写入另一个文件时,可以使用`FileUtils.copyFile()`,避免手动创建流和关闭流可能导致的资源泄漏问题。又或者,当需要检查一个文件是否存在时,`FileUtils.isFile()`方法能提供...

    FileUtils扩展readURLtoString读取url内容

    `readURLToString` 方法接收一个 `URL` 对象和可选的字符编码(默认使用系统默认编码),并打开与URL的连接,然后通过 `InputStream` 读取流中的数据,将其转换为字符串。它使用了 `IOUtils.toString` 方法,这是一...

    commons-io-2.11.0.rar

    Apache Commons IO 是一个Java库,专门用于处理输入/输出(I/O)操作。这个库提供了大量的实用工具类,简化了常见的文件、流、...通过深入学习和使用这个库,开发者可以更好地理解和管理文件和流操作,提升代码质量。

    commons-io-2.2.jar

    6. **读写操作**:`FileUtils.readFileToString()`和`FileUtils.writeStringToFile()`简化了文件的读写,支持字符编码,并能处理异常。 7. **文件比较**:`FileCompare`工具类可以比较两个文件或目录是否相等。 8....

    IODemo.zip

    其中,`IOUtils.copy()`方法可以方便地在不同流之间进行数据复制,`FileUtils.readFileToString()`和`FileUtils.writeStringToFile()`可以简化文件的读写操作。 在"Demo"这个文件中,可能包含了对这些流的实例化、...

    commons-fileupload-1.3.2和commons-io-2.5

    例如,`IOUtils`类提供了读取和写入流的便捷方法,`FileUtils`类则包含了一系列与文件操作相关的静态方法。 在处理文件上传时, Commons IO库常常与FileUpload配合使用。例如,当需要将上传的文件保存到服务器时,`...

    commons-io-1.4.rar_commons io_commons-io-1.4_commons-io-1.4.jar

    `StreamUtils`和`IOUtils`提供了一些便捷的方法,如`copy()`方法可以方便地在不同类型的流之间进行数据复制。 3. **缓冲区操作**:`BufferedInputStream` 和 `BufferedOutputStream` 可以提高数据读写的效率。 ...

    commons-io-2.6.zip

    例如,`FileUtils.copyFile()` 和 `FileUtils.deleteQuietly()` 方法分别用于文件的复制和安全删除。 2. **IOUtils**: 提供了处理输入/输出流的方法,比如读取整个流到字符串、写入字符串到流,或者关闭流而不抛出...

    commons-io文件

    例如,`FileUtils.copyFile()` 和 `FileUtils.deleteQuietly()` 分别用于文件的复制和安全删除。 2. **IOUtils**: 这个类主要处理流的读写操作。例如,`IOUtils.copy()` 可以用来复制输入流到输出流,而 `IOUtils....

    commons-io-2.0-src

    例如,`FileUtils.readFileToString()`和`FileUtils.writeStringToFile()`分别用于读取和写入文件内容。 3. **EndianUtils**: 这个类处理字节顺序,对处理不同平台上的大端(Big-Endian)和小端(Little-Endian)...

Global site tag (gtag.js) - Google Analytics