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

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

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

    把困難踩在腳下

    迎難而上

     

    java I/O流

    在java中定義了多個流類:按照流的方向分為輸入流和輸出流;按照處理數據單位的不同分為字節流和字符流;按照處理的功能不同分為節點流和處理流。java中的流很多,但是常用的不多。最常用的java流有FileInputStream、FileOutputStream、FileReader、FileWriter。從input和output我們可以知道這四個流中誰是輸入流誰是輸出流,以Stream為后綴的為節點流,以Reader為后綴的為處理流。所謂處理流就是指在節點流或處理流上在套接一個流,節點流就好比是一個水管,處理流是比套在節點流這個水管上的更粗的水管。在處理流中最常用的還有BufferedReader和BufferedWriter。下面通過例子來看看這幾個流的功能:這幾個例子的注釋非常詳細,所以我就不多介紹了。

    先看一個有關文件的例子:

     

    package com.dr.inoutput; 

    import java.io.File;
    import java.io.IOException; 

    public class Demo0 {
        
    public static void main(String args[]) throws IOException
        
    {
    //        File f=new File("e:"+File.separator+"aa"+File.separator+"abc.txt");//在任何系統狀態下建立文件句柄
    //        File f=new File("e:\\aa\\abc.txt");//在windows系統下建立文件句柄
            File f=new File("e:/aa/abc.txt");//適用于Unix系統
            f.createNewFile();//創建文件
            System.out.println(f.getName());//得到文件的名稱
            System.out.println(f.getAbsolutePath());//得到文件的絕對路徑
            System.out.println(f.isFile());//判斷文件是不是標準文件
            System.out.println(f.isDirectory());//判斷文件是不是目錄
            /*
             * 判斷文件是否存在,如果存在則刪除,如果不存在則新建
             
    */

            
    if(f.exists())
            
    {
                f.delete();
            }

            
    else
            
    {


                f.createNewFile();
            }

        }
     

    }
     

    看一個有關FileInputStream例子:

     

    package com.dr.inoutput; 

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream; 

    public class Demo5 {
        
    public static void main(String args[])
        
    {
            File f
    =new File("e:\\aa\\abc.txt");//將要從哪個文件中讀取數據就將哪個文件建立句柄
            InputStream input=null;//創建輸入流(這個輸入流必須放在try括號的外面)
            try {
                input
    =new FileInputStream(f);//將輸入流指向要讀取的文件
            }
     catch (FileNotFoundException e) {
                e.printStackTrace();
            }

            
    byte str[]=new byte[1024];//創建字節數組,用來盛放從輸入流讀取的信息
            int x=0;
            
    int count=0;
            
    for(int i=0;i<str.length;i++)
            
    {
                
    try {
                    
    if((x=input.read())!=-1)//判斷是否到文件尾,如果到文件尾就返回-1
                    {
                        str[i]
    =(byte)x;//因為x的值是int類型所以要進行數據轉換
                        count++;//用來計算讀入了多少個字節,以便下面進行操作
                    }

                    
    else
                    
    {
                        
    break;//如果到達文件尾就返回退出循環
                    }

                }
     catch (IOException e) {
                    e.printStackTrace();
                }

            }

            
    try {
                input.close();
    //關閉輸入流
            }
     catch (IOException e) {
                e.printStackTrace();
            }

            System.out.println(
    new String(str,0,count));//將字節數組轉換成字符串輸出
        }
     

    }
     

    關于FileOutputStream例子

     

    package com.dr.inoutput; 

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream; 

    public class Demo4 {
        
    public static void main(String args[]) throws FileNotFoundException
        
    {
            File f
    =new File("e:\\aa\\abc.txt");//向那個文件中寫入數據就顯得到這個文件的句柄
            OutputStream out=new FileOutputStream(f);//新建一個通向f文件的輸出流
            String xinxi="Hello 你好*****";//要輸出的信息
            byte b[]=xinxi.getBytes();//將要輸出的信息轉換成字節數組
            try {
                out.write(b);
    //將信息寫入文件中
            }
     catch (IOException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            }

            
    try {
                out.close();
    //關閉輸出流
            }
     catch (IOException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
     

    }
     

    關于FileReader的例子

     

    package com.dr.inoutput; 

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.Reader; 

    public class Demo7 {
        
    public static void main(String args[])
        
    {
            File f
    =new File("e://aa//abcd.txt");//從哪個文件讀入數據,就獲得該文件的句柄
            Reader in=null;//創建輸入流
            try {
                in
    =new FileReader(f);//將輸入流指向要從哪個文件讀入數據的我文件
            }
     catch (FileNotFoundException e) {
                e.printStackTrace();
            }

            
    //不能輸出漢字
            byte[] str=new byte[1024];//建立字節數組用來存放讀入的數據
            int x=0;
            
    int count=0;
            
    for(int i=0;i<str.length;i++)
            
    {
                
    try {
                    
    if((x=in.read())!=-1)//判斷是否到文件尾,如果到文件尾就返回-1
                    {
                        str[i]
    =(byte)x;
                        count
    ++;
                    }

                    
    else
                    
    {
                        
    break;
                    }

                }
     catch (IOException e) {
                    e.printStackTrace();
                }

            }

            
    try {
                in.close();
            }
     catch (IOException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            }

            System.out.println(count);
            System.out.println(
    new String(str,0,count));
            
    //可以輸出漢字
    //        char[] chr=new char[1024];
    //        int x1=0;
    //        try {
    //            x1=in.read(chr);
    //        } catch (IOException e) {
    //            e.printStackTrace();
    //        }
    //        System.out.println(new String(chr,0,x1));
    //        System.out.println(x1);
    //        try {
    //            in.close();
    //        } catch (IOException e) {
    //            // TODO Auto-generated catch block
    //            e.printStackTrace();
    //        }
        }
     

    }
     

    關于FileWriter的例子

     

    package com.dr.inoutput; 

    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.Writer; 

    public class Demo6 {
        
    public static void main(String args[])
        
    {
            File f
    =new File("e:\\aa\\abcd.txt");//將要向哪個文件輸出信息就獲得哪個文件的句柄
            String str="Hello 你好***";//要向文件輸出的字符串信息
            char[] chr={'a','b','c','d'};//向文件輸出的字符數組信息
            Writer out=null;//創建輸出流通道
            try {
                out
    =new FileWriter(f);//將輸出流通道指向要輸出的文件
            }
     catch (IOException e) {
                e.printStackTrace();
            }

            
    try {
                out.write(str);
    //將字符串數組的信息寫到文件中
                out.write(str,2,4);//將字符串數組的一部分信息寫到文件中
                out.write(chr);//將字符數組的信息寫到文件中
            }
     catch (IOException e) {
                e.printStackTrace();
            }

            
    try {
                out.close();
    //關閉輸出流
            }
     catch (IOException e) {
                e.printStackTrace();
            }

        }
     

    }
     

    關于BufferedReader的例子

     

    package com.dr.inoutput1; 

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader; 

    public class Demo1 {
        
    public static void main(String args[])
        
    {
            BufferedReader buf
    =null;//創建緩沖輸入流,可以接受漢字
            buf=new BufferedReader(new InputStreamReader(System.in));//將緩沖輸入流通道指向控制臺
            String str=null;//盛放從控制臺接受到的信息
            System.out.println("請輸入內容:");
            
    try {
                str
    =buf.readLine();
                buf.close();
    //關閉輸出流
            }
     catch (IOException e) {
                e.printStackTrace();
            }

            System.out.println(
    "輸出內容:"+str);
        }
     

    }
     

    java流有很多常用的也就這幾種。仔細想想其實他們有一個共點:

    獲得文件句柄

    建立通道

    讀\寫數據

    關閉通道

    posted on 2010-11-06 17:36 馮魁 閱讀(1228) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    公告

    快樂每一天!

    Everything is an object!

    常用鏈接

    留言簿(2)

    隨筆檔案

    學習網站

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲永久中文字幕在线| 亚洲狠狠婷婷综合久久蜜芽| 无码国产精品一区二区免费| 中文字幕乱码亚洲无线三区| 国产福利电影一区二区三区,亚洲国模精品一区 | 亚洲高清一区二区三区| 亚洲成a人片在线播放| 99精品视频在线免费观看| 亚洲精品天堂成人片AV在线播放| 日韩亚洲变态另类中文| 日韩欧美一区二区三区免费观看| jizz免费观看| 亚洲熟妇无码一区二区三区| 亚洲精品自产拍在线观看| 午夜色a大片在线观看免费| 国产无遮挡无码视频免费软件 | 老司机午夜免费视频| 无码乱人伦一区二区亚洲一| 日本不卡免费新一二三区| 日本免费电影一区二区| 免费一级毛suv好看的国产网站| 亚洲日韩中文字幕| 在线观看亚洲av每日更新| 日韩免费无码一区二区视频| 久久国产乱子免费精品| 色老头综合免费视频| 久久国产亚洲精品| 亚洲精品午夜久久久伊人| 美腿丝袜亚洲综合| 日韩免费在线观看| 拨牐拨牐x8免费| 51精品视频免费国产专区| 中文字幕成人免费高清在线视频| 一级免费黄色毛片| 亚洲欧美日韩中文二区| 亚洲精品视频在线观看免费| 久久亚洲国产午夜精品理论片 | 亚洲性无码一区二区三区| 亚洲视频在线免费观看| 亚洲中文字幕无码永久在线| 亚洲AV无码乱码在线观看牲色 |