轉換流 1、轉換流:將位元組流轉換成字元流,轉換之後就可以一個字元一個字元的往程式寫內容了,並且可以調用字元節點流的write(String s)方法,還可以在外面套用BufferedReader()和BufferedWriter,並使用它們的readLine 和 newLine方法。 2、有兩種轉換 ...
轉換流
1、轉換流:將位元組流轉換成字元流,轉換之後就可以一個字元一個字元的往程式寫內容了,並且可以調用字元節點流的write(String s)方法,還可以在外面套用BufferedReader()和BufferedWriter,並使用它們的readLine 和 newLine方法。 2、有兩種轉換流:InputStreamReader、OutputStreamWriter 練習小程式1: package test.io.transfer; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; public class OutputStreamWriterTest { public static void main(String args[]){ FileOutputStream fos = null; FileOutputStream fos1 = null; OutputStreamWriter opsw = null; try { fos = new FileOutputStream("E:/技術學習/java/test/Socket/test4.txt"); fos1 = new FileOutputStream("E:/技術學習/java/test/Socket/test5.txt"); opsw = new OutputStreamWriter(fos); opsw.write("轉換流練習"); System.out.println(opsw.getEncoding());//獲取編碼格式 opsw.flush(); opsw.close(); opsw = new OutputStreamWriter(fos1,"GBK"); opsw.write("轉換流練習轉換流練習"); System.out.println(opsw.getEncoding());//獲取編碼格式 opsw.flush(); } catch (IOException e) { e.printStackTrace(); }finally{ try { fos.close(); opsw.close(); } catch (IOException e) { e.printStackTrace(); } } } } 練習小程式2: package test.io.transfer; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class InputStreamReaderTest { public static void main(String args[]){ InputStreamReader isr = new InputStreamReader(System.in);//System.in是inputstream的子類 BufferedReader bf = new BufferedReader(isr); String ss = null; try { while((ss=bf.readLine()) != null){ if(ss.equals("exit")){ break; } System.out.println(ss); } } catch (IOException e) { e.printStackTrace(); }finally{ try { isr.close(); bf.close(); } catch (IOException e) { e.printStackTrace(); } } } } 數據流、位元組數組流 1、數據流:一般的位元組流只能讀寫byte[]類型的數據,只能寫int、byte、byte[]類型的數據 ;字元輸入流只能讀char[]類型的數據,字元輸出流只能寫char、char[]、int、String類型的數據。如果想要讀寫long、double、boolean等其他類型的數據,就需要用到數據流。 2、數據流是一種處理流,有兩種數據流:DataInputStream、DataOutputStream,分別繼承於InputStream和OutputStream。他們需要套在InputStream和OutputStream類型的位元組流上操作,下圖中截取一些,具體方法見幫助文檔。 DataInputStream:![](http://images2015.cnblogs.com/blog/701013/201702/701013-20170210112037244-1502749137.png)
DataOutputStream:
![](http://images2015.cnblogs.com/blog/701013/201702/701013-20170210112102182-1226180222.png)