IOUtil类

本文详细介绍了Java中文件读取的基本方法,包括使用FileReader和BufferedReader进行本地文件读取,以及如何通过URL获取远程资源并进行字符集转换。重点展示了如何将文本内容读取到StringBuilder中,并进行了简单的字符集转换演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;

public class IOUtil {

    public static BufferedReader getReader(String urlString) throws Exception, IOException {
        FileReader fileReader = null;
        File file = null;
        BufferedReader br = null;
        try {
            file = new File(urlString);
            fileReader = new FileReader(file);
            br = new BufferedReader(fileReader);
            return br;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    public static BufferedReader getReaderTo(String urlString,
            String chartSetString) throws Exception, IOException {
        URL url;
        InputStream is = null;
        InputStreamReader isr = null;
        BufferedReader br = null;
        try {
            url = new URL(urlString);
            is = url.openStream();
            isr = new InputStreamReader(is,chartSetString);
            br = new BufferedReader(isr);
            return br;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static void main(String[] args) throws Exception, IOException {

        // 阅读正文
        //BufferedReader br = IOUtil.getReader("D:\\wanglongjun.html", "utf-8");
        BufferedReader br = IOUtil.getReaderTo("file:\\D:\\wanglongjun.html", "UTF-8");
        StringBuilder sb = new StringBuilder();
        String temp = null;
        while ((temp = br.readLine()) != null) {
            //temp=new String(temp.getBytes("GBK"), "UTF-8");
            sb.append(temp);
        }

        System.out.println(sb.toString());
    }
}

### Hutool IoUtil 使用方法 Hutool 的 `IoUtil` 是一个非常实用的工具,提供了大量用于简化输入输出操作的方法。这些方法能够帮助开发者更高效地处理文件读写、流复制等常见 I/O 操作。 #### 基本功能介绍 `IoUtil` 提供了许多静态方法来方便地执行常见的 IO 操作。例如: - 流之间的数据传输 - 文件读取与写入 - 字符串和字节数组间的转换 - 关闭资源对象 通过使用此中的方法,可以减少编写重复代码的工作量并提高程序稳定性[^1]。 #### 示例代码展示 下面是一些具体的例子展示了如何利用 `IoUtil` 进行不同型的IO操作: ##### 复制 InputStream 到 OutputStream ```java import cn.hutool.core.io.IoUtil; public class Example { public static void copyStream() throws Exception{ try (InputStream inputStream = new FileInputStream("source.txt"); OutputStream outputStream = new FileOutputStream("destination.txt")) { // Copy from input stream to output stream using IoUtil.copy() IoUtil.copy(inputStream, outputStream); } } } ``` ##### 将 File 转换为 byte 数组 ```java import java.io.File; import cn.hutool.core.io.IoUtil; public class Example { public static byte[] fileToBytes(String filePath){ File file = new File(filePath); // Convert a file into bytes array with readBytes method of IoUtil. return IoUtil.readBytes(file); } } ``` ##### 把字符串写入到指定路径下的新创建文件中 ```java import cn.hutool.core.io.IoUtil; public class Example { public static void writeStringToFile(){ String content = "Hello world!"; // Write string data directly to the specified path as a newly created file by IoUtil.writeUtf8(). IoUtil.writeUtf8(new File("/path/to/your/file"), true, content); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值