日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Java的I/O笔记(3)

發布時間:2025/4/5 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java的I/O笔记(3) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉換流

可以把一個字節流轉換為一個字符流,原來按字節讀取的字節流“套上”它以后,就可以轉換為按字符讀取。

1: import java.io.*; 2: public class TestTransForm1 { 3: public static void main(String[] args) { 4: try { 5: OutputStreamWriter osw = new OutputStreamWriter( 6: new FileOutputStream ("d:\\bak\\char.txt")); 7: osw.write("mircosoftibmsunapplehp"); 8: System.out.println(osw.getEncoding()); 9: osw.close(); 10: osw = new OutputStreamWriter(new FileOutputStream("d:\\bak\\char.txt", true), 11: "ISO8859_1"); // latin-1 12: //true 表示文件末尾追加 13: osw.write("mircosoftibmsunapplehp"); 14: System.out.println(osw.getEncoding()); 15: osw.close(); 16: } catch (IOException e) { 17: e.printStackTrace(); 18: } 19: } 20: }

?

OutputStreamWriter : OutputStream是字節流,Writer是字符流, 連起來的OutputStreamWriter就是把OutputStream轉換成Writer

構造函數(OutputStream out)??? FileOutputStream是OutputStream的子類,所以也可以傳入作為參數。

本來的字節流OutputStream,外面套個OutputStreamWriter,就變成字符流

?

1: import java.io.*; 2: public class TestTransForm2 { 3: public static void main(String args[]) { 4: InputStreamReader isr =

5: new InputStreamReader(System.in);???

//in是系統的標準輸入流,是InputStream的一個子類 ,從DOS窗口輸入

6: BufferedReader br = new BufferedReader(isr); //為何又包了一層?因為BufferedReader有個很好用的方法readline() 7: String s = null; 8: try { 9: s = br.readLine(); 10: while(s!=null){ 11: if(s.equalsIgnoreCase("exit")) break; 12: System.out.println(s.toUpperCase()); 13: s = br.readLine(); 14: } 15: br.close(); 16: } catch (IOException e) { 17: e.printStackTrace(); 18: } 19: } 20: } //阻塞,不輸入就不能干別的

?


數據流

DateOutputStream 和 DateInputStream 分別繼承自OutputStream 和 InputStream? ,屬于處理流

需要分別“套接”在OutputStream 和 InputStream 類型的節點流上

提供了可以存取與機器無關的Java原始數據類型(double,int…)的方法.

構造方法:DateOutputStream( OutputStream out)

???????????? DateInputStream( InputStream in )

1: import java.io.*; 2: public class TestDataStream { 3: public static void main(String[] args) { 4: ByteArrayOutputStream baos = 5: new ByteArrayOutputStream(); ? //new出一個“管道”的時候,同時自動建一個字節數組 6: DataOutputStream dos = 7: new DataOutputStream(baos); //DataOutputStream好處是可以直接輸出基本數據類型 8: try { 9: dos.writeDouble(Math.random()); //寫入一個8byte的數 10: dos.writeBoolean(true); //寫入一個1byte的boolean 11: ByteArrayInputStream bais = 12: new ByteArrayInputStream( baos.toByteArray ()); 13: System.out.println( bais.available() ); 14: DataInputStream dis = new DataInputStream(bais); 15: System.out.println( dis.readDouble ());????? 先寫先讀,所以要先readdouble,再readboolean 16: System.out.println( dis.readBoolean ()); 17: dos.close(); dis.close(); 18: } catch (IOException e) { 19: e.printStackTrace(); 20: } 21: } 22: }

轉載于:https://www.cnblogs.com/bevin-h/archive/2012/04/23/2466064.html

總結

以上是生活随笔為你收集整理的Java的I/O笔记(3)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。