本文共 1012 字,大约阅读时间需要 3 分钟。
根据数据的流向区分:输入流和输出流。根据数据的类型区分:字节流(8bit)和字符流(16bit)。
字节流 | 字符流 | |
---|---|---|
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
在这章就主要讲解下字节流的输入输出。
注意事项:
1. 对I/O进行操作需要进行异常的抛出或者跳过,使用“throws”或者“try-catch”来处理异常。 2. 使用完I/O流后一定要关闭I/O流,遵循先开后关,后开先关的原则。输入流是从硬盘里的文件输入到内存中。读取操作中需要创建一个字节数组来存放输入的数据。在UTF-8编码中,一个中文字符占三个字节,所以四个字需要至少12个字节。建议预留足够的数组空间,避免乱码。
读取操作示例:
try { FileInputStream in = new FileInputStream("./test123.txt"); byte[] bytes = new byte[15]; int len = 0; while ((len = in.read(bytes)) != -1) { System.out.println(new String(bytes, 0, len)); } in.close();} catch (Exception e) { e.printStackTrace();}
结果显示读取的字节数为12,符合UTF-8编码要求。
输出流是从内存写入硬盘里的文件。输出操作相对简单,但需要注意先将数据写入内存,再将内存数据刷写到硬盘。
输出操作示例:
try { FileOutputStream out = new FileOutputStream("./test123.txt"); String str = "玛卡巴卡"; out.write(str.getBytes()); out.flush(); out.close();} catch (Exception e) { e.printStackTrace();}
示例中文件内容被覆盖写入为“玛卡巴卡”。
如有问题欢迎指正。
转载地址:http://houd.baihongyu.com/