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