代码:

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[],相当于可以把数据全部读到内存中来. 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐