import java.io.*;
public class Ex10_4{
public static void main(String args[]){
int n=-1;
byte []a = new byte[100];
try{ File f = new File("Ex10_4.java"); //創建檔案(源)
InputStream in = new FileInputStream(f); //創建指向檔案的輸入流
while((n =in.read(a,0,100))!=-1) { //未讀出位元組就回傳-1
/*回圈讀取位元組,呼叫int read(byte a[],int off,int len),
讀取len個位元組到位元組陣列a中,引數off指定從哪個位置開始*/
String s = new String(a,0,n);
System.out.print(s);
}
in.close(); //關閉流
}
catch(Exception e){
System.out.println("File read Error"+e);
}
}
}
宣告的變數n=-1不理解,while回圈和后面的String(a,0,n)方法是個什么方法
求大佬解答一下
uj5u.com熱心網友回復:
InputStream的read()方法將流中的位元組讀取到位元組陣列中,回傳值是讀取到的位元組數,如果回傳-1,那就是沒有讀取到資料。new String(a,0,n)是在呼叫String類的一個構造方法。
找一個JDK API的檔案,看看就知道了,String類的構造方法有好幾個。
如果找不到聯系我,我有1.6、1.7、1.8的檔案,其中1.6是全中文的,1.7是全英文的,1.8一半一半,其中那些中文也是翻譯軟體翻譯的,看著有點兒費勁
uj5u.com熱心網友回復:
n=-1 沒有用,因為后面n=in.read(a,0,100)重新給n賦值了;String(a,0,n)的作用是將byte陣列a轉化為字串,但是a這個陣列不是全部都需要轉換為字串,只需要0-n的位元組。
uj5u.com熱心網友回復:
謝謝大哥uj5u.com熱心網友回復:
n=-1可以不要嗎uj5u.com熱心網友回復:
int n需要申明,你可以在原來位置申明也可以在while里申明
while((int n =in.read(a,0,100))!=-1)
uj5u.com熱心網友回復:
n=-1可以不要嗎 n=-1 沒有用,因為后面n=in.read(a,0,100)重新給n賦值了;
String(a,0,n)的作用是將byte陣列a轉化為字串,但是a這個陣列不是全部都需要轉換為字串,只需要0-n的位元組。
int n需要申明,你可以在原來位置申明也可以在while里申明
while((int n =in.read(a,0,100))!=-1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/138118.html
標籤:Java SE
上一篇:各位大佬過來瞧瞧
