用ByteArrayOutputStream()实现文件读取到内存,用split()方法分割以#号分割内容,添加到ArrayList容器中去。

代码:

package lx.Test.parseTxt;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;

public class Test01 {
    public static void main(String[] args) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ArrayList<String> arrayList = new ArrayList<>();

        File file = new File(
                "D:/01_lxj/Workspaces/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/lis_new/sys/LIRDoc/测试试题.txt");

        if (file.isFile() && file.exists()) {
            try {
                FileInputStream fin = new FileInputStream(file);
                int len = 0;
                // 定义一个字节缓冲区,该缓冲区的大小根据需要来定义
                byte[] buffer = new byte[1024];
                // 循环来读取该文件中的数据,将内容读到buffer中,读到末尾为-1
                while ((len = fin.read(buffer)) != -1) {
                    baos.write(buffer, 0, len); // 将buffer内容写入baos
                }
                // 关闭此文件输入流并释放与此流有关的所有系统资源。
                fin.close();

                String getString = baos.toString("GBK");
                baos.close();
                String lis = baos.toString();
                String[] lis1 = lis.split("#");
                for (int i = 0; i < lis1.length; i++) {
                    arrayList.add(lis1[i]);

//                System.out.println(lis1[i]+"111111");
                }
                System.out.println(arrayList);
            } catch (Exception ex) {

            }
        }
    }

}
运行结果:

总结:FileOutputStream 可以把数据写到文件中去 
ByteArrayOutputStream 可以把其他地方的读入的数据写到这内存里面,最后获取数据所有的 byte[],相当于可以把数据全部读到内存中来. 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值