您好,登錄后才能下訂單哦!
InputStreamReader和 OutputStreamWriter
new InputStreamReader(字節流,"UTF-8") //指定模式
將字節流轉換為字符流,方便處理,比如能使用BufferedReader處理流
可以處理字符集:InputStreamReader isr=new InputStreamReader(字節流,"UTF-8");
網絡流:new URL("http://www.baidu.com").openStream(),這是一個字節流
用裝飾器裝飾轉換流轉換成的字符流:BufferedReader reader=new BufferedReader(new InputStreamReader(new URL("http://www.baidu.com").openStream(),"UTF-8"))
用轉換流來讀取鍵盤輸入輸出的字節流:
try(BufferedReader isr=new BufferedReader( new
InputStreamReader(System.in));
BufferedWriter osw=new BufferedWriter(new OutputStreamWriter(System.out));){
//鍵盤循環讀取,exit退出
String s=" ";
while(!s.equals("exit"))
{
s=isr.readLine(); //按行讀取
osw.write(s); //寫出
osw.newLine();
osw.flush(); //強制刷新,因為數據太小無法輸出,要滿足一定kb才會自動輸出
}
}
catch(IOException e)
{
System.out.println("操作異常");
}
操作網絡流,讀取百度源碼:
使用裝飾器:
//使用轉換流,讀取中文不會亂碼
try(BufferedReader reader=new BufferedReader(new InputStreamReader(new URL("http://www.baidu.com").openStream(),"UTF-8"));
){ //網頁的字符集是utf-8
//讀取
String s;
while((s=reader.readLine())!=null)
{
System.out.println(s);
}
}
catch(IOException e)
{
System.out.println("操作異常");
}
}
不使用裝飾器:
try(InputStreamReader is=new InputStreamReader(new URL("http://www.baidu.com").openStream());
){
//讀取
int len;
while((len=is.read())!=-1)
{
System.out.print((char)len);
}
}
catch(IOException e)
{
System.out.println("操作異常");
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。