Java入門學習-自我理解IO流

gongjinsi發表於2017-05-10

之前寫了一篇IO流,自己都不知道複製的是什麼,決定重新寫一篇,換個方式寫:

一、總框架

這裡寫圖片描述

二、自我覺得重要的事情總結

這裡寫圖片描述

三、兩個例項直接鞏固知識

1、“背單詞”:從單詞本中讀取單詞每隔2秒輸出到網頁顯示;可以去掉音標顯示;可以改變單詞顯示的速度;可以增加測試的功能(單詞含義可以隨機選4個詞的含義來讓使用者選擇),可以增加標記生詞並記到生詞本中;。

//之後再優化效率,先寫這麼多啦
public class WordsFile {  //讀取單詞本檔案類
    String path="F:/java/HelloWeb/src/EnglishWords/words.txt";
    File file= new  File(path);
    String str;
    public ArrayList<String>  getfile() throws IOException {
         //將位元組流FileInputStream轉換為gbk格式的字元流InputStreamReader,再轉成BufferReader,因為我們要對文書處理,再一塊讀,所以用BufferReader,而非之前的直接讀位元組流
         //上面的話是自我認定,需要老師確定
        BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream(file),"gbk")) ; 
        ArrayList<String> arr=new ArrayList<>();
        while((str=in.readLine())!=null){   //BufferReader的方法:讀一行
            arr.add(str.trim());          //百度得單詞本空前後有空格,trim去除空格,再add到ArrayList中
        }
        in.close();  //快取流一定要記得關閉哈
        return arr;
    }
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        WordsFile w=new WordsFile();
        ArrayList<String> arrayList=w.getfile();
        for(int i=0;i<arrayList.size();i++){
            System.out.println(arrayList.get(i));
        }
    }
}

2、“網路爬蟲”:介面可以做成圖形化介面;下載時可以判斷是不是網頁(其中有HTML標記);可以猜測網頁的編碼(charset);可以避免迴圈下載(將已下載過的網頁記下來);可以處理相對地址;可以記錄下來網頁中得到的email地址等等。

相關文章