in =Test.class.getResourceAsStream("/tt.txt");byte[] tt=newbyte[1024];int b;while((b=in.read(tt))!=-1){System.out.println(b);String tzt=newString(tt,"utf-8");System.out.println(tzt);
3.read(byte[] b, int off, int len)
此方法其實就是多次調用了read()方法。
InputStream in =Test.class.getResourceAsStream("/tt.txt");//System.out.println(in.available());//此方法是返回這個流中有多少個字節數,可以把數組長度定為這個byte[]tt=newbyte[in.available()];int z;while((z=in.read(tt,0, tt.length))!=-1){System.out.println(newString(tt,"utf-8"));}
在java中,可以使用InputStream對文件進行讀取,就是字節流的輸入。InputStream讀取流有三個方法,分別為read(),read(byte[] b),read(byte[] b, int off, int len)。
1.read
這個方法是對這個流一個一個字節的讀,返回的int就是這個字節的int表示方式。
以下是代碼片段,經過測試當eclipse的編碼為gbk時,轉化出的字符串不需經過重新編碼,如果eclipse的編碼為utf-8時則由byte轉成字符串需重新編成utf-8的。
2.read(byte[] b)
這個方法是先規定一個數組長度,將這個流中的字節緩沖到數組b中,返回的這個數組中的字節個數,這個緩沖區沒有滿的話,則返回真實的字節個數,到未尾時都返回-1。
3.read(byte[] b, int off, int len)
此方法其實就是多次調用了read()方法。
回答所涉及的環境:聯想天逸510S、Windows 10。