publicclassMyTest { publicstaticvoidmain(String args[]) { File f1 = new File("E:\\text.txt"); byte[] b = newbyte[1024];//利用byte将字节保存起来,然后利用String一起输出。 try { FileInputStream fis = new FileInputStream(f1); int len = fis.available(); for (int i = 0; i < len; i++) { fis.read(b); } System.out.print(new String(b)); fis.close();//这句省掉也可以,close的作用是关闭流以及有flush的作用。字符流的输出就需要用到这个了 } catch(Exception e){} } }
上面在“读取多个字符”的时候用到了int len = fis.available();; available()的值并不是fis的长度,而是剩下字节的长度。所以每次读取都会减少,但在第一次读的时候,是整个fis的长度。这里利用一个临时的int将其保存起来用作for循环的判断。