輸入輸出 學習目標 瞭解串流與輸入輸出的關係 認識InputStream、OutputStream繼承架構

Slides:



Advertisements
Similar presentations
Web Maple— 云端计 算 数学学院刘海洋 胡婷婷. 需求 什么是 Web Maple ? Maple : “ 数学家的软件 ” 符号和数值计算 动态编程语言 集成编辑环境与图形输出 Web Maple :网页上的数学家 完整的 Maple 功能 云端计算 网页独特的输入输出格式.
Advertisements

JAVA 概述 主讲:张雷. J2ME API 地址: 广东科贸信息工程 张雷学习要求 了解各种程序设计语言及其特点 了解各种程序设计语言及其特点 了解 JAVA 的发展史和其特点 了解 JAVA 的发展史和其特点.
资源平台应用培训 武汉市交通学校信息化建设指导委员会.
Java软件设计基础 课后作业.
104年度國立宜蘭大學新進主管研討 主計業務宣導說明
檔案處理.
102年實施之高中職及五專多元入學(含免試入學)之招生機制
C语言程序设计 李伟光.
读者与图书馆 2009年春季版 总第 15 期 山 东 交 通 学 院 图 书 馆 2009年3月.
姻緣天注定 定婚店 李復言.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
拯救书店计划 第二课挑战任务 一、探秘职业,获取知识 姓名:童彦佶 团队成员:童彦佶和妈妈 年龄:10岁 所在地区:上海
SAE Java 实际应用 在这里写上你的标题 作者名字/日期
2012级暑期放假安全教育 及宿舍搬迁工作布置会 北京化工大学理学院 辅导员:曹鼎 2013年6月6日.
《Java程序设计之网络编程》 教学课件 重庆大学计算机学院
四年一班小組創作 黃琦智老師指導 (影片檔請見班級電視牆)
录入准备: 地址: 密码:
2015年云南财经大学图书馆 新生入馆教育考核试题 答题指南
第二章 JAVA语言基础.
一、登录界面 (一)登录方式 1、访问广东工程咨询网 ( 动态里,“咨询师登记工作”专栏 2、 IE地址栏中直接键入管理系统 地址(
例外與檔案處理 例外處理 拋出例外 串流 Stream FileReader、FileWriter
任务2: 通报的写作.
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
Java Programming Spring, 2013
第一讲 面向对象程序设计概论 苏州大学 计算机科学与技术学院.
创意源自激情,技术成就梦想 畅翼创新俱乐部 2012年春俱乐部第三次技术培训 赵程.
目标 运用File类进行文件操作 理解流,标准输入/输出流的概念
第9章 例外與檔案處理 9-4 檔案與資料夾處理 9-5 Java的輸入/輸出串流 9-6 檔案的讀取與寫入.
Chin-Yi Tsai Java Chin-Yi Tsai
6. Java输入输出.
第7章 输入输出处理.
第3章 流与Java中的文件操作 孙焘.
JAVA 网络编程基础.
主講:陳美芳 講義:陳美芳、洪儷瑜 臺灣師大特殊教育系教授 2012國中種子教師工作坊, 11,16
Java语言程序设计 清华大学出版社 第9章 网络通信.
张孝祥IT课堂 -深入体验Java Web开发内幕
Java 的例外與輸入出檔案處理 Jing Ming Huang.
Java 第28讲:建立删除文件 主讲教师:李焱 讲师.
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
副程式概念與 檔案存取 函式與傳值 重構觀念 串流資料 檔案資料存取.
Multithread 多執行緒 I/O Lecturer:楊昌樺.
JAVA 程式設計與資料結構 第六章 輸出與輸入.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第四章 RFID標籤與讀取器 RFID概論 Chapter 4 RFID標籤與讀取器. 第四章 RFID標籤與讀取器 RFID概論 Chapter 4 RFID標籤與讀取器.
第四章 基本輸出入 Java應用程式的輸出入介面有三種,分別是命令提示字元視窗、AWT元件、及Swing元件。本單元先介紹命令提示字元視窗,AWT請看第16、17章,Swing請看第20章。 輸入 輸出.
Java程序设计 第18章 二进制I/O.
第九章 Java输入输出系统.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第九章 输入/输出流.
第六讲 JSP中的文件操作(2) 教学目的 本讲继续讲述JSP中使用Java输入、输出流实现文件的读写操作 。 1 文件上传 2 文件下载
第10章 儲存偏好設定、檔案與資料庫 10-1 存取偏好設定 10-2 檔案存取 10-3 關聯式資料庫與SQLite
第七章 输入/输出 标准输入输出 流式I/O基础 文件 随机存取文件 对象输入/输出流.
第12章 JSP的檔案與電子郵件處理 12-1 伺服端的檔案處理 12-2 伺服端檔案的讀取與寫入 12-3 客戶端的檔案上傳
王豐緒 銘傳大學資訊工程學系 問題:JAVA 物件檔輸出入.
第11章 Java数据流 [内容提要] 大部分程序都需要数据的输入和输出, 从键盘读取数据, 向文件写入数据或从文件获取数据,
電腦概論.
Java程序设计 第2章 基本数据类型及操作.
認識 Java.
第五讲 JSP中的文件操作(1) 教学目的 本讲主要讲述JSP中使用Java输入、输出流实现文件的读写 操作 。 知识要点
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
《JAVA程序设计》 语音答疑 辅导老师:高旻.
致 理 科 技 大 學 「106年大專校院弱勢學生助學計畫」 說 明 會 中 華 民 國 106 年 9 月 13日.
Java软件设计基础 课后作业.
黑龙江省科学基金 项目验收填报培训 黑龙江省计算中心 2015年09月.
明德網路硬碟操作手冊 許明福製 更新.
方格紙上畫正方形.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
第 5 章 常用类的使用 伍孝金
第二章 Java基础语法 北京传智播客教育
9 输入输出及文件操作.
Presentation transcript:

輸入輸出 學習目標 瞭解串流與輸入輸出的關係 認識InputStream、OutputStream繼承架構 認識Reader、Writer繼承架構 使用輸入輸出裝飾器類別

串流設計觀念

串流設計觀念 從應用程式角度來看,如果要將資料從來源取出,可以使用輸入串流,如果要將資料寫入目的地,可以使用輸出串流 輸入串流代表物件為java.io.InputStream實例,輸出串流代表物件為java.io.OutputStream實例

串流設計觀念

串流設計觀念 來源與目的地都不知道的情況下,如何撰寫程式?

串流設計觀念 在不使用InputStream與OutputStream時,必須使用close()方法關閉串流 InputStream與OutputStream實作了java.io.Closeable介面,其父介面為java.lang.AutoCloseable介面,因此可使用JDK7嘗試自動關閉資源語法

串流設計觀念 如果要將某個檔案讀入並另存為另一個檔案 ..

串流設計觀念 如果要從HTTP伺服器讀取某個網頁,並另存為檔案 …

串流設計觀念 使用java.net.ServerSocket接受客戶端連線的例子:

串流設計觀念 將來學到Servlet,想將檔案輸出至瀏覽器,也會有類似的操作:

串流繼承架構

串流繼承架構

串流繼承架構 記得System.in與System.out嗎?分別是InputStream與PrintStream的實例 … 較少直接操作InputStream相關方法,而是如先前章節使用java.util.Scanner包裹System.in

串流繼承架構 可以使用System的setIn()方法指定InputStream實例,指定標準輸入來源 將標準輸入指定為FileInputStream,可以讀取指定檔案並顯示在文字模式

串流繼承架構 若要將10.1.1的Download範例改為輸出至標準輸出,也可以這麼寫:

串流繼承架構 標準輸出可以重新導向至檔案,只要執行程式時使用>將輸出結果導向至指定的檔案 如果使用>>則是附加訊息

串流繼承架構 可以使用System的setOut()方法指定PrintStream實例,將結果輸出至指定的目的地 將標準輸出指定至檔案:

串流繼承架構 System.err為PrintSteam實例,稱之為標準錯誤輸出串流,用來立即顯示錯誤訊息 System.out輸出的訊息可以使用>或>>重新導向至檔案,但System.err輸出的訊息一定會顯示在文字模式中,無法重新導向 可以使用System.setErr()指定PrintStream,指定標準錯誤輸出串流

串流繼承架構 FileInputStream是InputStream的子類,可以指定檔案名稱建構實例,一旦建構檔案就開啟,接著就可用來讀取資料 FileOutputStream是OutputStream的子類,可以指定檔案名稱建構實例,一旦建構檔案就開啟,接著就可以用來寫出資料 無論是FileInputStream或FileOutputStream,不使用時都要使用close()關閉檔案

串流繼承架構 FileInputStream主要實作了InputStream的read()抽象方法,使之可從檔案中讀取資料 FileOutputStream主要實作了OutputStream的write()抽象方法,使之可寫出資料至檔案

串流繼承架構 FileInputStream、FileOutputStream在讀取、寫入檔案時,是以位元組為單位 通常會使用一些高階類別加以包裹,進行一些高階操作,像是Scanner與PrintStream類別等

串流繼承架構 ByteArrayInputStream是InputStream的子類,可以指定byte陣列建構實例,一旦建構就可將byte陣列當作資料來源進行讀取 ByteArrayOutputStream是OutputStream的子類,可以指定byte陣列建構實例,一旦建構將byte陣列寫作目的地寫出資料

串流繼承架構 ByteArrayInputStream主要實作了InputStream的read()抽象方法,使之可從byte陣列中讀取資料 ByteArrayOutputStream主要實作了OutputStream的write()抽象方法,使之可寫出資料至byte陣列

串流處理裝飾器 InputStream、OutputStream提供串流基本操作,如果想要為輸入輸出的資料作加工處理,則可以使用包裹器類別 具備緩衝區作用的BufferedInputStream、 BufferedOutputStream 具備資料轉換處理作用的DataInputStream、 DataOutputStream 具備物件序列化能力的ObjectInputStream、 ObjectOutputStream

串流處理裝飾器

串流處理裝飾器 如果傳入IO.dump()的是FileInputStream、FileOutputStream實例,每次read()時都會要求讀取硬碟,每次write()都會要求寫入硬碟,這會花費許多時間在硬碟定位上

串流處理裝飾器 BufferedInputStream與BufferedOutputStream主要於內部提供緩衝區功能 建構BufferedInputStream、BufferedOutputStream必須提供InputStream、OutputStream進行包裹,可以使用預設或自訂緩衝區大小

串流處理裝飾器

串流處理裝飾器 DataInputStream、DataOutputStream提供讀取、寫入Java基本資料型的方法,像是讀寫int、double、 boolean等的方法

串流處理裝飾器 ObjectInputStream提供readObject()方法將資料讀入為物件,而ObjectOutputStream提供writeObject()方法將物件寫至目的地 可以被這兩個方法處理的物件,必須實作java.io.Serializable介面,這個介面並沒有定義任何方法,只是作為標示之用,表示這個物件是可以序列化的(Serializable)

串流處理裝飾器 如果在作物件序列化時,物件中某些資料成員不希望被寫入,則可以標上transient關鍵字

Reader與Writer繼承架構

Reader與Writer繼承架構 在不使用Reader與Writer時,必須使用close()方法關閉串流,由於Reader與Writer實作了Closeable介面,其父介面為AutoCloseable介面,因此可使用JDK7嘗試自動關閉資源語法

Reader與Writer繼承架構

Reader與Writer繼承架構

Reader與Writer繼承架構 若要使用CharUtil.dump()讀入檔案、轉為字串並顯示在文字模式中…

Reader與Writer繼承架構 FileReader、FileWriter可以對檔案作讀取與寫入,讀取或寫入時預設會使用作業系統預設編碼來作字元轉換 在啟動JVM時,可指定-Dfile.encoding來指定FileReader、FileWriter所使用的編碼

Reader與Writer繼承架構 FileReader、FileWriter沒有可以指定編碼的方法 如果在程式執行過程中想要指定編碼,則必須使用InpuStreamReader、OutputStreamWriter

字元處理裝飾器 想要將位元組資料轉換為對應的編碼字元,可以使用InputStreamReader、OutputStreamWriter對串流資料資料包裹 在建立InputStreamReader與OutputStreamWriter時,可以指定編碼,如果沒有指定編碼,則以JVM啟動時所獲取的預設編碼來作字元轉換

字元處理裝飾器

字元處理裝飾器 想以UTF-8處理字元資料,例如讀取UTF-8的Main.java文字檔案,並另存為UTF-8的Main.txt文字檔案 …

字元處理裝飾器 BufferedReader、BufferedWriter可對Reader、Writer提供緩衝區作用 JDK 1.4之前,標準API並沒有Scanner類別,若要在文字模式下取得使用者輸入的字串,會如下撰寫:

字元處理裝飾器 PrintWriter與PrintStream使用上極為類似,除了可以對OutptStream包裹之外,PrintWriter還可以對Writer進行包裹,提供print()、println()、format()等方法