<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 14,  comments - 7,  trackbacks - 0
      2010年11月10日
           

            剛學(xué)java流技術(shù)IO編程時,一下出來這么多流,很是不敏感,不感冒,在學(xué)習(xí)了這段時間,發(fā)現(xiàn)好多項目中的讀寫數(shù)據(jù),輸入輸出用到的都是以前學(xué)的最基本的,但是自己卻不是很理解其根本,今天就說幾個流中簡單但又常用的幾個知識點

       Java.io包中定義了多個流類型,來實現(xiàn)輸入輸出功能:

      •  按數(shù)據(jù)流的方向不同可以分為輸入流和輸出流。(以程序的角度來考慮)
      • 如:輸入流InputStream Reader 輸出流 OutputStream Writer
      •  按處理數(shù)據(jù)單位不同可以分為字節(jié)流和字符流。
      • : 字節(jié)流 InputStream OutputStream 字符流 Reader Writer
      •  按照功能不同可以分為節(jié)點流和處理流。

            通俗的說節(jié)點流就是一個簡單的輸入輸出流,而處理流是“連接”在已存在的字節(jié)流或處理流之上的,通過對數(shù)據(jù)的處理為程序提供更為強大的讀寫功能。

     我們最經(jīng)常用到的節(jié)點流類型是有關(guān)文件處理的有FileReader FileWriter FileInputStream FileOutputStream

    Ø          FileInputSteam FileOutputStream 類支持其父類InputStream OutputStream 所提供的數(shù)據(jù)讀寫方法。

    Ø       注意:

    §         在實例化FileInputStreamFileOutputSteam流時要用trycatch語句以處理其可能拋出的FileNotFoundException

    §         在讀寫數(shù)據(jù)時也要用trycatch語句以處理可能拋出的 IOException

    §         FileNotFoundExceptionIOException的子類

    FileReader FileWriter 分別繼承自ReaderWriterFileInputSteamFileOutputStream類似,所不同的時FileReaderFileWriter向文件輸入和輸出的數(shù)據(jù)單位為字符。

         處理流中常用到的有緩沖流 、轉(zhuǎn)換流。

    l          緩沖流有BufferedReader BufferedWriter BufferedInputStream BufferedOutputStream ,緩沖流要“套接”在相應(yīng)的節(jié)點流之上,對讀寫的數(shù)據(jù)提供了緩沖的功能,提高了讀寫的效率,同時增加了一些新的方法

    l          BufferedReader提供了readLine方法用于讀取一行字符串(以"r"n           隔)。

    l          BufferedWriter提供了newLine用于寫入一個行分隔符。

    l          對于輸出的緩沖流,寫出的數(shù)據(jù)會先在內(nèi)存中緩存,使用flush方法將會使內(nèi)存中的數(shù)據(jù)立刻寫出。

    Socket編程中接受信息時,不是直接用InputStream接收,而是把內(nèi)容放入緩沖之中進行讀取 ,在Socket中的簡單應(yīng)用如下
      

    package com.dr.Echo;

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.PrintStream;
    import java.net.ServerSocket;
    import java.net.Socket;

    public class EchoServer {

        
    /**
         * 
    @param args
         * 
    @throws IOException 
         
    */

        
    public static void main(String[] args) throws IOException {
            
    // TODO Auto-generated method stub
             ServerSocket server = null;
             PrintStream out 
    = null;
             BufferedReader buf 
    = null;
             server 
    = new ServerSocket(9999);
             Socket client 
    = null;
             
    while(true){
                 
    //不斷接收數(shù)據(jù)
                 client = server.accept();
                 
    //準備好像客戶端輸出內(nèi)容
                 out = new PrintStream(client.getOutputStream());
                 
    //而且客戶端要有輸入給服務(wù)器端
                 buf = new BufferedReader(new InputStreamReader(client.getInputStream()));
                 
    //下面先給出一個完整的信息提示
                 out.println("您好!歡迎光臨:http://wwww.tstc.edu.cn");
                 out.println(
    "輸入bye表示退出哈-");
                 
    while(true){
                     
    //接受客戶端發(fā)送而來的內(nèi)容
                     String str = buf.readLine();
                     System.out.println(
    "client's data is "+str);
                     
    if(str == null){
                         
    //如果str為空就表示退出
                         break;
                     }
    else{
                         
    //如果輸入的是bye則表示是退出系統(tǒng)
                         if("bye".equals(str)){
                             
    break;
                         }

                         out.println(
    "xiaoxiao:"+str);
                     }

                 }

                 out.close();
                 buf.close();
                 client.close();
             }

        }


    }

     

    package com.dr.Echo;

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintStream;
    import java.net.Socket;
    import java.net.UnknownHostException;

    public class EchoClient {

        
    /**
         * 
    @param args
         * 
    @throws IOException 
         * 
    @throws UnknownHostException 
         
    */

        
    public static void main(String[] args) throws UnknownHostException, IOException {
            
    // TODO Auto-generated method stub
             Socket client = null;
             BufferedReader buf 
    = null;
             PrintStream out 
    = null;
             client 
    = new Socket("127.0.0.1",9999);
             buf 
    = new BufferedReader(new InputStreamReader(client.getInputStream()));
             System.out.println(buf.readLine());
             System.out.println(buf.readLine());
             BufferedReader in 
    = new BufferedReader(new InputStreamReader(System.in));
             
             String userInput 
    = null;
             out 
    = new PrintStream(client.getOutputStream());
             
    while((userInput = in.readLine())!=null){
                 out.println(userInput);
                 System.out.println(buf.readLine());
             }

             out.close();
             in.close();
             client.close();
             
             
        }


    }

       

          轉(zhuǎn)換流InputStreamReader OutputStreamWriter 用于字節(jié)數(shù)據(jù)到字符數(shù)據(jù)之間的轉(zhuǎn)換。其中InputStreamReader 需要和InputStream”套接OutputStreamWriter需要和OutputStream套接

          數(shù)據(jù)流DataInputStream DataOutputStream 提供了可以存取與機器無關(guān)的java原始數(shù)據(jù)類型

    l              Print流:PrintWriterPrintStream都屬于輸出流,分別針對與字符和字節(jié),PrintWriterPrintStream提供了重載的printPrintln方法用于多種數(shù)據(jù)類型的輸出。PrintWriterPrintStream的輸出操作不會拋出異常,用戶通過檢測錯誤狀態(tài)獲取錯誤信息。PrintWriterPrintStream有自動flush功能

    l           

     這幾個流的類型都是在以后的學(xué)習(xí)中經(jīng)常用到的。就不一一做例子啦

     

             以后所學(xué)到的所有流類型都是繼承 InputStream OutputStream Reader Writer 這四個抽象的流類型

    posted @ 2011-01-18 22:26 迷人笑笑 閱讀(888) | 評論 (0)編輯 收藏
         摘要:           我相信大多說人都對構(gòu)造方法、方法不陌生,而且很了解,但我也相信有很多像我這樣的沒有一個很好很清晰很全面的認識,今天就把它整理如下,希望能給大家?guī)睃c方便與幫助,也希望大家多多討論。         ...  閱讀全文
    posted @ 2010-11-12 16:43 迷人笑笑 閱讀(39169) | 評論 (1)編輯 收藏
         摘要:        今天我們用實例程序說一下java中常見的生產(chǎn)者與消費者的問題。  首先看一下里面線程間的通信問題:    一個線程向數(shù)據(jù)存儲空間添加數(shù)據(jù)(生產(chǎn)者),另一個線程從數(shù)據(jù)存儲空間去出數(shù)據(jù)(消費者)。 這個程序中有兩個可能出現(xiàn)的問題需要考慮: 1、   ...  閱讀全文
    posted @ 2010-11-10 23:07 迷人笑笑 閱讀(2165) | 評論 (1)編輯 收藏
    <2010年11月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    常用鏈接

    留言簿(13)

    隨筆檔案

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 中文无码亚洲精品字幕| 亚洲国产精品一区二区久久| 中文字幕无码精品亚洲资源网久久| 最近免费中文字幕mv在线电影 | 99久久精品免费精品国产| 好看的亚洲黄色经典| a级午夜毛片免费一区二区| 亚洲国产精品成人精品无码区| 你懂的免费在线观看| 亚洲综合久久综合激情久久| 57pao国产成视频免费播放| 亚洲午夜在线一区| 在线精品免费视频| 黄色网址免费在线| 亚洲精品亚洲人成在线观看| 久久午夜夜伦鲁鲁片免费无码| 91亚洲国产成人精品下载| 久草视频免费在线| 久久久久亚洲精品无码网址色欲| 亚洲av区一区二区三| 人妻在线日韩免费视频| 亚洲精品不卡视频| 日本最新免费不卡二区在线| gogo免费在线观看| 亚洲黄色在线播放| 国产免费看插插插视频| 在线观看免费视频网站色| 亚洲毛片基地日韩毛片基地| 日本黄色免费观看| 中文字幕无线码免费人妻| 亚洲国产精品久久人人爱| 国产一级淫片视频免费看| 久久福利青草精品资源站免费| 亚洲一级高清在线中文字幕| 亚洲高清国产拍精品青青草原| 国产精品免费AV片在线观看| 亚洲日韩看片无码电影| 亚洲性猛交XXXX| 午夜寂寞在线一级观看免费| 一个人免费视频在线观看www | 天天看片天天爽_免费播放|