程序使用字节流来执行字节(1byte=8bit)的输入和输出。所有字节流的类都继承于InputStream和OutputStream这两个类。
以常用的FileInputStream和FileOutputStream为例,例子来源于jdk文档
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyBytes { public static void main(String[] argss) throws IOException { FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream("E:\\Documents\\Java\\eclipse-workspace\\JavaTutorial\\src\\in.txt"); // 照搬原来的例子报错,需要创建文件(没有会报错)后输入系统文件中的绝对路径 out = new FileOutputStream("E:\\Documents\\Java\\eclipse-workspace\\JavaTutorial\\src\\out.txt"); // 不存在时会自己生成一个 int c; while ((c = in.read()) != -1) { // 这里是一个字节一个字节进行读写 out.write(c); } } finally { if (in != null) { // 在文件不存在或文件因某些原因无法读取时,会抛出错误,此时in仍然指向null,所以这里要检察一下 in.close(); } if (out != null) { // 类似的原因,防止out仍然指向null时,却调用close方法 out.close(); } } System.out.print("We success!!"); } }
字节流是其它IO流的基础,但是像文本文件这样的,要避免使用字节流,而使用字符流。