IO流中的装饰者模式初探

以上一篇中的代码为例:

public String download(String urlStr){
StringBuffer sb = new StringBuffer();
String line = null;
BufferedReader buffer = null;
        
        try {
            url = new URL(urlStr);
            HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
           //装饰者模式
            buffer = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
            while ((line = buffer.readLine()) != null){
                sb.append(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        finally{
            try {
                buffer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    return sb.toString();  
}

Java中的IO流设计:使用装饰者模式:要在InputStream外面套上一层InputStreamReader,再套上一层BufferedReader。

InputStream是一种字节流,读进来都是一个个字节,套上一层InputSteamReader就可以转换成字符流,读进来是一个个字符。
再套上一层BufferedReader, BufferedReader有一个readLine方法,可以一次性读取文件中的一行数据,可以一行行读
只要读取不为空,就可以把读到的数据添加到StringBuffer中去,知道读到一个空行,跳出。

你可能感兴趣的:(IO流中的装饰者模式初探)