javareadin
① 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中c=in.read())!=-1什麼意思
輸入數據流的操作,in為一個inputstream對象,read()是in的方法,每次讀取一個位元組的二進制數據,並判斷in.read()的值是否等於-1,當in.read()值等於-1時,代表數據讀取完畢,最後將輸入流的值賦值給c
③ Java readLine()方法
readLine()在遇到回車換行(\n,\r,\r\n都可以)時才返回。所以如果你不輸入回車,即使顯示的字元已經換行(控制台窗口)也不會返回。
out.print(line)後面加一個out.println()就可以了。
④ java中System.in.read();是什麼意思
System.in.read()可以實現輸入字元,返回字元的Unicode碼,但是缺點是只能輸入一個字元
System.in.read() 返回的是輸入數值的 ASKII 碼(一個 int 整數)。 如果要求輸入與輸出的一致的話: 通常情況下,你會用readLine( )一行一行地讀取輸入,因此要把System.in包裝成BufferedReader。但在這之前還得先用InputSteamReader把System.in轉換成Reader。
⑤ java中如何實現readln
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String string=br.readLine();
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
比如:
import java.io.*;
public class Inpu{
public static void main(String args[]){
//由於Java的System.in是位元組流輸入,所以只有int read()和int read(byte[] b)等方法來輸入,這樣很不方便,所以使用java.io里的BufferedReader,Java API幫助文檔里的描述是:從字元輸入流中讀取文本,緩沖各個字元,從而實現字元、數組和行的高效讀取。
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("請輸入一個字元串: ");
//br.readLine()返回的就是你輸入的字元串
String string=br.readLine();
System.out.println("你輸入的字元串是: "+string);
} catch (IOException ioe) {}
}
}
⑥ java 的readLine()怎麼進行的
readLine()是讀取流讀數據的時候用的,同時會以字元串形式返回這一行的數據,當讀取完所有的數據時會返回null。
代碼示例:
public static void main(String[] args) throws Exception {
//獲取讀取流 3
FileReader reader = new FileReader("C:\Users\楊華彬\Desktop\test.txt");
BufferedReader br = new BufferedReader(reader);
while (br.readLine() != null) {
//注意這里輸出的是readLine(),while循環中的和輸出中的readLine()方法被掉了兩次,所以會隔行讀取。
System.out.println(br.readLine());
}
//關閉讀取流
br.close();
reader.close();14
}
拓展資料:
使用readLine()一定要注意:
讀入的數據要注意有/r或/n或/r/n
沒有數據時會阻塞,在數據流異常或斷開時才會返回null
使用socket之類的數據流時,要避免使用readLine(),以免為了等待一個換行/回車符而一直阻塞
⑦ java中read()方法的原理是什麼
既然你能看到這個方法的源代碼,那你也應該能看到FilterInputStream類的其它方法的源代碼,FilterInputStream類中有十個方法和一個InputStream類型的變數,變數名是in。
十個方法里有九個是重寫InputStream類的方法,並且八個是直接調用變數in的同名同參方法,另一個也只是在調用in的方法時填了兩個默認參數。
而十個方法中的另一個方法是構造方法,參數是InputStream的,在方法中,直接把這個參數賦給了變數in。
所以FilterInputStream實質上只是對InputStream類做了一個簡單的封裝,實際調用的方法是在構造方法里傳過來的InputStream對象的方法。
所以想看read()方法的具體實現,應給去找InputStream類或InputStream類的子類
⑧ java中read方法問題
一樓說的很對,根據ascii編碼表: 1 對應 49; 2對應50; 3 對應 51。
主要是在System.out.println(a+b+c);這一句,程序會先將abc的的ascii值進行相加,畢竟算術符號的優先順序比較高,然後再將其轉換成字元串進行輸出,於是就是System.out.println((a+b+c).toString());
結果就是150了。
如果需要使程序按照你想的那樣運行,需要將字元轉換成整數載運行。
或者你使用Scanner這個類,
Scannerscanner=newScanner(System.in);
inta=scanner.nextInt();
這樣就可以從輸入中直接得到整數。
⑨ java流的read方法返回值怎麼來的
inputstream的read函數 在很多地方都有用到 比如鍵盤輸入或文件流輸入或socket輸入
read的返回值 並不是真正得到的數據,而是得到的數據的長度
你每次會希望讀入一定的長度,比如你想讀10個byte 如果剩餘的byte數足夠,將會讀滿所需要的位元組數,如果剩餘的位元組數不夠 將會返回一個小於你所讀的數 如果讀到-1 表示讀取結束(經常在socket和文件讀取遇到)
⑩ java readin string的問題
public String[] split(String regex);
使用
String str="im a man";
String[] list=str.split(" ");