....

?

輸入流和輸出流相對于內存設備而言.

將外設中的數據讀取到內存中:輸入
將內存的數寫入到外設中:輸出。


字符流的由來:
其實就是:字節流讀取文字字節數據后,不直接操作而是先查指定的編碼表。獲取對應的文字。
在對這個文字進行操作。簡單說:字節流+編碼表

---------------------------------------

字節流的兩個頂層父類:
1,InputStream 2,OutputStream.

字符流的兩個頂層父類:
1,Reader 2,Writer

這些體系的子類都以父類名作為后綴。
而且子類名的前綴就是該對象的功能。

?

?

就從熟悉的文字開始字符流,


//需求:將一些文字存儲到硬盤一個文件中。
記住;如果要操作文字數據,建議優先考慮字符流。
而且要將數據從內存寫到硬盤上,要使用字符流中的輸出流。Writer
硬盤的數據基本體現是文件。 希望找到一個可以操作文件的Writer.

找到了FileWriter

?

//需求:讀取一個文本文件。將讀取到的字符打印到控制臺.
同上,找到了FileReader

?

?

?

==========================

字符流緩沖區:
BufferedWriter
:newLine();

BufferedReader:
: readLine();


使用緩沖區復制一個文本文件。

?

裝飾設計模式:
對一組對象的功能進行增強時,就可以使用該模式進行問題的解決。

裝飾和繼承都能實現一樣的特點:進行功能的擴展增強。

有什么區別呢?

首先有一個繼承體系。
Writer
|--TextWriter:用于操作文本
|--MediaWriter:用于操作媒體。

想要對操作的動作進行效率的提高。
按照面向對象,可以通過繼承對具體的進行功能的擴展。
效率提高需要加入緩沖技術。

Writer
|--TextWriter:用于操作文本
|--BufferTextWriter:加入了緩沖技術的操作文本的對象。
|--MediaWriter:用于操作媒體。
|--BufferMediaWriter:

到這里就哦了。但是這樣做好像并不理想。
如果這個體系進行功能擴展,有多了流對象。
那么這個流要提高效率,是不是也要產生子類呢?是。這時就會發現只為提高功能,進行的繼承,
導致繼承體系越來越臃腫。不夠靈活。

重新思考這個問題?
既然加入的都是同一種技術--緩沖。
前一種是讓緩沖和具體的對象相結合。
可不可以將緩沖進行單獨的封裝,哪個對象需要緩沖就將哪個對象和緩沖關聯。

class Buffer{
Buffer(TextWriter w)
{}

Buffer(MediaWirter w)
{

}
}
class BufferWriter extends Writer{
BufferWriter(Writer w)
{
}
}
Writer
|--TextWriter:用于操作文本
|--MediaWriter:用于操作媒體。
|--BufferWriter:用于提高效率。

裝飾比繼承靈活。

特點:裝飾類和被裝飾類都必須所屬同一個接口或者父類。

?

--------------------------------------

字節流:

InputStream

OutputStream

字節流:
FileInputStream
FileOutputStream
BufferedInputStream
BufferedOutputStream
字符流:
Writer Reader
FileReader
FileWriter
BufferedReader
BufferedWriter

轉載于:https://www.cnblogs.com/xiaowei88/p/5515131.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374647.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374647.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374647.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DataNucleus 3.0與Hibernate 3.5

如官方產品站點所述, DataNucleus Access Platform是現有的最符合標準的開源Java持久性產品。 它完全符合JDO1 , JDO2 , JDO2.1 , JDO2.2 , JDO3 , JPA1和JPA2 Java標準。 它還符合OGC簡單功能規范&#xf…

手工內存管理規則的總結

1.如果需要保持一個對象不被銷毀,可以使用retain.在使用完對象后,需要使用release銷毀 2.給對象發送release消息并不會銷毀對象,只有當這個對象的引用計數減為0時,對象才會被銷毀.然后系統會發送dealloc消息給這個對象用于釋放它的內存. 對使用了retain或者copy,mutableCopy,al…

Java 字符,整型,字符串三者轉換

1.整型 —> 字符型 先把整型轉化為字符串,再把字符串轉化為字符 //整型 ---> 字符型 toString(int n).charAt(int index) System.out.println(Integer.toString(20).charAt(0));2.整型 —> 字符串 //整型 ---> 字符串 Inte…

AngularJS 的常用特性(二)

3、列表、表格以及其他迭代型元素 ng-repeat可能是最有用的 Angular 指令了,它可以根據集合中的項目一次創建一組元素的多份拷貝。 比如一個學生名冊系統需要從服務器上獲取學生信息,目前先把模型之間定義在 JavaScript 代碼里面: 1 var stud…

Ruby,Python和Java中的Web服務

今天,我不得不準備一些示例來說明Web服務是可互操作的。 因此,我已經使用Metro使用Java創建了一個簡單的Web服務,并在Tomcat上啟動了它。 然后嘗試使用Python和Ruby消耗它們。 這是全部完成的過程… Java中的Web服務 我從Java中的簡單Web服…

bzoj4199: [Noi2015]品酒大會

題面見http://uoj.ac/problem/131 一道后綴數組題 先求出height&#xff0c;然后從大到小枚舉每個height。 然后對于每個height值&#xff0c;兩端的集合中任意一對后綴的LCP都是這個height。 我們統計答案之后合并兩端的集合&#xff0c;用并查集維護即可。 1 #include<cst…

css中position初解

positon:static|absolute|relative|fiexd 1、static為默認值&#xff0c;沒有定位&#xff0c;元素出現在正常的文檔流中&#xff0c;忽略left,right,top,bottom,i-index值。 2、absolute為絕對定位&#xff0c;通過left,top等值對元素進行定位&#xff0c;定位時如果父元素的p…

零XML的Spring配置

Tomasz Nurkiewicz是我們的JCG合作伙伴之一&#xff0c;也是Spring框架的堅定支持者&#xff0c;在他的最新文章中描述了如何在不使用XML的情況下配置Spring應用程序。 注解方法在頂部。 查看他的教程&#xff1a; 沒有XML的Spring框架...根本&#xff01; 翻譯自: https://ww…

用動畫切換按鈕的狀態

用動畫切換按鈕的狀態 效果 源碼 https://github.com/YouXianMing/UI-Component-Collection // // BaseControl.h // BaseButton // // Created by YouXianMing on 15/8/27. // Copyright (c) 2015年 YouXianMing. All rights reserved. //#import <UIKit/UIKit.h> c…

iOS開發之學前了解

學iOS開發能做什么&#xff1f; iOS開發需要學習哪些內容&#xff1f; 先學習什么&#xff1f; 不管你是學習android開發還是iOS開發 都建議先學習UI&#xff0c;原因如下&#xff1a; UI是app的根基&#xff1a;一個app應該是先有UI界面&#xff0c;然后在UI的基礎上增加實用功…

力扣gupiao

給定一個數組 prices &#xff0c;它的第 i 個元素 prices[i] 表示一支給定股票第 i 天的價格。 你只能選擇 某一天 買入這只股票&#xff0c;并選擇在 未來的某一個不同的日子 賣出該股票。設計一個算法來計算你所能獲取的最大利潤。 返回你可以從這筆交易中獲取的最大利潤。…

Java相當好的隱私(PGP)

公鑰加密 這篇文章討論了PGP或“很好的隱私”。 PGP是常規加密和公用密鑰加密的混合實現。 在詳細介紹PGP之前&#xff0c;讓我們先談談公鑰加密。 與其他任何加密技術一樣&#xff0c;公鑰加密解決了通過不安全介質傳輸安全數據的問題。 即互聯網。 結果&#xff0c;該方案的…

HDU 5691 Sitting in Line 狀壓dp

Sitting in Line題目連接&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid5691 Description 度度熊是他同時代中最偉大的數學家&#xff0c;一切數字都要聽命于他。現在&#xff0c;又到了度度熊和他的數字仆人們玩排排坐游戲的時候了。游戲的規則十分簡單&#xff0c…

hello oc

printf("Hello C\n"); //OC可以采用C語言的輸出方式 printf("The number is %d\n",100);//%d 輸出數字 printf("Hello %s\n","XiaoMing");//%s 輸出字符 NSLog("Hello Objective-C"); //采用oc的輸出&#xff0c;前面帶了一…

Spring3 RESTful Web服務

Spring 3提供了對RESTful Web服務的支持。 在本教程中&#xff0c;我們將向您展示如何在Spring中實現RESTful Web服務 &#xff0c;或者如何將現有的Spring服務公開為RESTful Web服務 。 為了使事情變得更有趣&#xff0c;我們將從上一篇關于Spring GWT Hibernate JPA Infinisp…

zoj 3765 塊狀鏈表 OR splay

各種操作o(╯□╰)o...不過都挺簡單&#xff0c;不需要lazy標記。 方法1&#xff1a;塊狀鏈表 塊狀鏈表太強大了&#xff0c;區間操作實現起來簡單暴力&#xff0c;效率比splay稍微慢一點&#xff0c;內存開銷小很多。 1 #include <iostream>2 #include <cstring>3…

【C#公共幫助類】 Image幫助類

大家知道&#xff0c;開發項目除了數據訪問層很重要外&#xff0c;就是Common了&#xff0c;這里就提供了強大且實用的工具。 【C#公共幫助類】 Convert幫助類 Image類&#xff1a; using System; using System.Collections.Generic; using System.Text; using System.IO; usin…

Java泛型快速教程

泛型是Java SE 5.0引入的一種Java功能&#xff0c;在其發布幾年后&#xff0c;我發誓那里的每個Java程序員不僅聽說過它&#xff0c;而且已經使用過它。 關于Java泛型&#xff0c;有很多免費和商業資源&#xff0c;而我使用的最佳資源是&#xff1a; Java教程 Java泛型和集合…

876. 鏈表的中間結點

給定一個頭結點為 head 的非空單鏈表&#xff0c;返回鏈表的中間結點。 如果有兩個中間結點&#xff0c;則返回第二個中間結點 代碼一&#xff1a; 自己想的一個方法 class Solution {public ListNode middleNode(ListNode head) {ListNode p1 head;ListNode p2 head;//i,j…

Hive查詢Join

Select a.val,b.val From a [Left|Right|Full Outer] Join b On (a.keyb.key); 現有兩張表&#xff1a;sales 列出了人名及其所購商品的 ID&#xff1b;things 列出商品的 ID 和名稱&#xff1a; hive> select * from sales; OK Joe 2 Hank 4 Ali 0 Eve 3 Ha…