public static void main(String[] args) throws IOException { // 先创建流对象和文件进行关联 InputStream in = new FileInputStream("D:\\abc.txt"); // 定义数组,用来存储从底层读取的多个字节数据,一般都是1024的整数倍 byte[] buf = new byte[1024]; // 定义变量,用来记录到底从底层读取了多个字节数据 int len = 0; // 使用循环从底层开始读取数据 while ((len = in.read(buf)) != -1) { // 处理读取到的数据,数据存储在buf数组中,buf中共计存储了len个字节数据,并不一定把buf存满 // 循环输出,因为一共存储了len个数据,所以循环次数应该小于len,如果循环次数小于数组长度,数组不一定存满,会输出很多其他东西 for (int i = 0; i < len; i++) { System.out.print((char) buf[i]); } } // 关闭流对象 in.close(); // 再创建流对象和文件进行关联 OutputStream out = new FileOutputStream("D:\\aaa.txt"); // 把数组的东西写到关联的文件里面 out.write(buf); // 关闭流对象 out.close(); }