从业以来一直对IO不甚了解,每次看到都头疼不已,最近有时间小小的总结一下,下面以FileIO流为try byte[] byt = new byte[3];
//文件输入流 FileInputStream in = new FileInputStream(new File("C:\\Users\\Administrator\\Desktop\\1.txt")); //文件输出流,输出文件与输入文件为同一件文件 FileOutputStream out = new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\1.txt"),true); int length = 0; int i = 0; //将输入流中的内容读到byte数组中,输入流中随后删除了被读取过的内容,length是实际读取的字节长度,当无内容时读取长度为-1 while((-1 != (length = in.read(byt))) && i<= 110) { //输出流将byte数组中字节输出到文件中,实际写入的长度根据length而来,避免多写入了额外的空格 out.write(byt, 0, length); //将byte数组中字节转化成字符串 System.out.print(new String(byt)); i++; } out.flush(); out.close(); }catch(Exception e) { e.printStackTrace(); }
运行代码后,会一直进行读取和写出,知道变量i的条件不满足为止,这里我们可以了解到,IO流是一边读一边写的,如果读写为同一个文件,会一直死循环读写。
时间: 2024-10-11 03:58:39