本文共 2584 字,大约阅读时间需要 8 分钟。
在Hutool框架中,FileUtil
类是处理文件操作的核心工具之一,提供了丰富的文件操作接口。以下将详细介绍其相关方法,包括getOutputStream
、getWriter
、getPrintWriter
等,帮助开发者更好地了解和使用这些功能。
getOutputStream(String path)
方法通过FileUtil.getOutputStream
方法可以获得一个输出流对象。该方法主要用于向文件中写入数据,适用于需要高效、可靠地将数据持久化存储的场景。
path
:指定输出文件的路径,应为绝对路径。该方法返回一个OutputStream
对象,开发者可通过该对象向文件中写入数据。
// 创建输出流对象BufferedOutputStream bufferedOutputStream = null;try { // 如果文件不存在,程序会自动创建 bufferedOutputStream = FileUtil.getOutputStream("C:\\Users\\Administrator\\Desktop\\xuzhu\\getOutputStreamTest1.txt"); String str = "getOutputStreamTest内容1 \ngetOutputStreamTest内容2"; byte[] sb = str.getBytes(); bufferedOutputStream.write(sb); bufferedOutputStream.flush();} catch (IOException e) { // 抛出运行时异常 throw new RuntimeException("运行时异常", e);} finally { IoUtil.close(bufferedOutputStream);}
getWriter(String path, String charsetName, boolean isAppend)
方法FileUtil.getWriter
方法用于获取一个带缓存的写入对象,支持自定义字符集和追加写入功能,适用于需要高效批量写入数据的场景。
path
:输出文件路径,必须为绝对路径;charsetName
:字符集名称;isAppend
:是否追加写入,true
表示追加,false
表示覆盖。该方法返回一个BufferedWriter
对象,用于高效批量写入文件。
// 创建带缓存的写入对象BufferedWriter bufferedWriter = null;try { // 是否追加 Boolean isAppend = false; // 创建流 bufferedWriter = FileUtil.getWriter("C:\\Users\\Administrator\\Desktop\\xuzhu\\getWriterTest.txt", CharsetUtil.UTF_8, isAppend); String str = "getWriterTest1 \ngetWriterTest2"; bufferedWriter.write(str); bufferedWriter.flush();} catch (IOException e) { // 抛出运行时异常 throw new RuntimeException("运行时异常", e);} finally { IoUtil.close(bufferedWriter);}
getPrintWriter(String path, Charset charset, boolean isAppend)
方法FileUtil.getPrintWriter
方法用于获取一个打印写入对象,支持自定义字符集和追加写入功能,适用于需要使用print
和println
方法进行格式化写入的场景。
path
:输出文件路径,必须为绝对路径;charset
:字符集名称;isAppend
:是否追加写入。该方法返回一个PrintWriter
对象,用于格式化写入文件。
// 创建打印写入对象PrintWriter printWriter = null;try { // 是否追加 Boolean isAppend = false; // 创建流 printWriter = FileUtil.getPrintWriter("C:\\Users\\Administrator\\Desktop\\xuzhu\\getPrintWriterTest1.txt", CharsetUtil.UTF_8, isAppend); printWriter.write("小虚竹"); printWriter.append(" 你真帅~"); // 换行写入 printWriter.println("我稀罕你"); printWriter.write("我爱你"); printWriter.flush();} catch (IORuntimeException e) { // 抛出运行时异常 throw new RuntimeException("运行时异常", e);} finally { IoUtil.close(printWriter);}
getOutputStream
:适用于直接写入二进制数据,性能较高;getWriter
:适用于文本数据的批量写入,支持字符集选择;getPrintWriter
:适用于格式化写入,支持多种写入操作如print
和println
。这些方法在Hutool框架中都基于File
类操作,确保了文件操作的便捷性和可靠性。
转载地址:http://ytgfk.baihongyu.com/