本文目錄一覽:
- 1、java中read()方法的使用
- 2、java中read()方法的原理是什麼?
- 3、java流的read方法返回值怎麼來的?
- 4、Java:關於IO流中的read()方法
- 5、Java 編程下 IO 中的輸入流的 read 方法返回值為什麼是 int 值
- 6、java怎麼用read()每次讀文件中的四個位元組保存在數組中
java中read()方法的使用
位元組流的read()方法是操作位元組流的,字元流的read()方法是操作unicode字元的。
可以通過BufferedReader
流的形式進行流緩存,通過read()方法獲取到緩存的內容。
示例代碼:
BufferedReader
bre
=
null;
try
{
String
file
=
“X:/xxxx/xxxx.txt”;//文件地址
bre
=
new
BufferedReader(new
FileReader(file));//獲取到的bre就是整個文件的緩存流
while
(
bre.read()
!=
-1)
{//
判斷是否為最後一個位元組,若是則結束循環
System.out.println(bre.read());//輸出讀到的內容
};
bre.close();//切記需要寫close()關閉流
備註:位元組流讀取過程中很容易出現亂碼,建議可以用readLine方式進行逐行的讀取。
java中read()方法的原理是什麼?
既然你能看到這個方法的源代碼,那你也應該能看到FilterInputStream類的其它方法的源代碼,FilterInputStream類中有十個方法和一個InputStream類型的變數,變數名是in。
十個方法里有九個是重寫InputStream類的方法,並且八個是直接調用變數in的同名同參方法,另一個也只是在調用in的方法時填了兩個默認參數。
而十個方法中的另一個方法是構造方法,參數是InputStream的,在方法中,直接把這個參數賦給了變數in。
所以FilterInputStream實質上只是對InputStream類做了一個簡單的封裝,實際調用的方法是在構造方法里傳過來的InputStream對象的方法。
所以想看read()方法的具體實現,應給去找InputStream類或InputStream類的子類
java流的read方法返回值怎麼來的?
inputstream的read函數 在很多地方都有用到 比如鍵盤輸入或文件流輸入或socket輸入
read的返回值 並不是真正得到的數據,而是得到的數據的長度
你每次會希望讀入一定的長度,比如你想讀10個byte 如果剩餘的byte數足夠,將會讀滿所需要的位元組數,如果剩餘的位元組數不夠 將會返回一個小於你所讀的數 如果讀到-1 表示讀取結束(經常在socket和文件讀取遇到)
Java:關於IO流中的read()方法
API說明:
public int read() throws IOException
從此輸入流中讀取一個數據位元組。如果沒有輸入可用,則此方法將阻塞。
指定者:類 InputStream 中的 read
返回:下一個數據位元組;如果已到達文件末尾,則返回 -1。
拋出:IOException – 如果發生 I/O 錯誤。
個人理解:
該方法將輸入按位元組讀入,當讀取到位元組時就返回該位元組的int型數值(可以將其強制轉換成byte類型),如果讀取到文件末尾也就是無數據可讀時則返回-1,表示以讀到文件末尾。順便說一句按此方法讀取時需要將讀到的int轉成byte同時存入到一個足夠大的byte數組中,然後根據該數組構造字元串,顯示結果!
例:
public static void main(String[] args) throws IOException {
File f = new File(“E:/java文件/demo1.txt”);
InputStream ins = new FileInputStream(f);
byte[] bb = new byte[1024];
int temp = 0;
int i = 0;
while ((temp = ins.read()) != -1) {
bb[i++] = (byte) temp;
System.out.println((byte) temp);
}
System.out.println(new String(bb, “UTF-8”).trim());
}
關於Byte的toString()方法:
返回表示此 Byte 的值的 String 對象。該值被轉換成有符號的十進位表示形式,並作為一個 string 返回,正如將 byte 值作為一個參數指定給 toString(byte) 方法所返回的一樣。
覆蓋:類 Object 中的 toString
返回:以基數 10 表示的此對象值的字元串表示形式。
Java 編程下 IO 中的輸入流的 read 方法返回值為什麼是 int 值
java中read方法返回的int類型:如果返回char, 那麼無法表示流末尾. char的取值範圍是從0到65535。這個範圍內的所有字元, 都有可能在數據中出現。需要使用一個不可能在數據中出現的值來表示流末尾。那麼Java中就是用-1來表示這個末尾的, 因為-1不會在數據中出現。而為了返回-1, 那麼只能用int。當流中讀取到一個字元時, read()方法內部就會當作int返回, 如果讀到流末尾, 直接返回-1。
java怎麼用read()每次讀文件中的四個位元組保存在數組中
java使用read()方法進行讀文件中的四個位元組保存在數組總的示例如下:
public static void main(String[] arg) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader(“E:/test.txt”));
int[] list = new int[20];
int i = 0;
String line = null;
while ((line = reader.readLine()) != null) {
String[] vStrs = line.split(” “);
for (String str : vStrs) {
list[i++] = Integer.parseInt(str);
}
}
System.out.println(Arrays.toString(list));
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/232185.html