文件流. 文件流 文件流 Stream FileStream BufferedStream MemoryStream NetworkStream …… 所有流的抽象 Stream FileStream BufferedStream MemoryStream NetworkStream ……

Slides:



Advertisements
Similar presentations
佛山 佛山简称 “ 禅 ” ,是一座历史悠久的文化 名城,是中华人民共和国广东省下辖的一 个地级市, 1951 年 6 月 26 日成立。这里是黄 飞鸿、李小龙的故乡,是珠三角的经济重 地,一个荣耀千年的商贸名城,用生生不 息的陶都圣火锻造出 “ 敢为人先,崇文务实 ” 的城市。 卷首语目录尾页.
Advertisements

第15章 文件处理技术 变量和数组只能临时存储数据,且数据量很小, 当应用程序终止,数据就会丢失。如果需要将数 据长期存储或者存储大量数据,就需要用到文件。 文件维护的数据通常称为持久数据,存储在计算 机的辅助存储设备中,如磁盘、光盘等。许多程 序都要与外部数据进行交互,如数据库、XML,甚 至文本文件,因此文件操作是软件开发中必不可.
WELCOME 歡迎藝文深耕教學訪視委員.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
™ 全球,唯一支持第三方自动部署的交易系统 中国产权交易所有限公司 二〇一四年十月 超级交易系统V1.0
四資二甲 第三週作業 物件導向程式設計.
個人投資理財分析 財務狀況匯總表 銀行存款 共同基金 外幣基金 股票投資 保險價值 黃金投資 支出預算 房貸計算 不動產價值 資源變化資料庫
第五章 字符串.
Welcome.
孔子教育思想的现实思考 陈丰辉.
Welcome to 武夷山.
第二章 JAVA语言基础.
例外與檔案處理 例外處理 拋出例外 串流 Stream FileReader、FileWriter
乘法应用题和常见的数量关系.
第5章 异常处理 王德俊 上海交通大学继续教育学院.
第八章 C#高级编程.
Java 第28讲:建立删除文件 主讲教师:李焱 讲师.
南华大学计算机学院 软件工程系 QQ讨论群:
美女图片 下载器开发 之.Net篇 如鹏网.
C# 的 Web 相關物件之使用 日期 : 2018/11/21.
第14章 建立網路應用程式 14-1 瀏覽器的建立 14-2 檔案下載器 14-3 寄送電子郵件 14-4 檢查POP 3的電子郵件.
第十三章 文件和注册表操作.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
C#程序设计 c# programming 网络编程 C#程序设计课程组.
程式設計實作.
第四章 基本輸出入 Java應用程式的輸出入介面有三種,分別是命令提示字元視窗、AWT元件、及Swing元件。本單元先介紹命令提示字元視窗,AWT請看第16、17章,Swing請看第20章。 輸入 輸出.
抽象类 File类 String类 StringBuffer类
C++ with Managed Extensions
基于 C# 的 .NET Framework 程序设计
西南科技大学网络教育系列课程 高级语程序设计(Java) 第九章 输入/输出流.
C#程序设计基础 $3 成员、变量和常量.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
讲课人:王璞 浙江工商职业技术学院.
第14章 伺服器檔案、電子郵件處理與Ajax 14-1 資料夾與檔案操作 14-2 文字檔案的讀寫 14-3 電子郵件與附檔處理
王豐緒 銘傳大學資訊工程學系 問題:JAVA 物件檔輸出入.
第三章 流程控制與例外處理 資訊教育研究室 製作 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
C#面向对象程序设计 $7 继承和多态性.
第7章 Web伺服器檔案與XML文件的處理 7-1 System.IO名稱空間的基礎 7-2 伺服器的資料夾與檔案操作
第5章 .NET框架类 5.
程式設計 博碩文化出版發行.
例外處理與 物件序列化(Exception Handling and Serialization of Objects)
檔案讀寫與例外處理 (File IO and Exception Handling)
$16 进程和线程. $16 进程和线程 进程 进程 属性 ProcessName / Id MachineName / MainModule BasePriority StartTime / ExitTime TotalProcessorTime / UserProcessorTime PrivateMemorySize64.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
第 十二 章 C# 中的文件处理.
第12章 文件操作 12.1 文件和System.IO模型概述 12.2 System.IO模型 12.3 文件夹和文件操作
第7章 目录和文件操作 王德俊 上海交通大学继续教育学院.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
C#程序设计基础 第二章 数据类型.
第五讲 JSP中的文件操作(1) 教学目的 本讲主要讲述JSP中使用Java输入、输出流实现文件的读写 操作 。 知识要点
P2P聊天工具.
劉崇汎 崑山科技大學 電腦與通訊系 DLL的建立與引用 劉崇汎 崑山科技大學 電腦與通訊系
$15 文件操作. $15 文件操作 主要内容 文件系统概述 驱动器、目录和文件 文件流和数据流 自定义IO操作.
C#程序设计基础 $3 成员、变量和常量.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
一個基於Web Service的 洪氾預警系統
嵩贊油封工業股份有限公司 小 而 美 的 管 理 簡報人: 管理部 柯美伶.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第四章 类 4.1 基础知识 4.2 构造函数 4.3 方法 4.4 属性与索引 4.5 String类
第11章 從C到C++語言 11-1 C++語言的基礎 11-2 C++語言的資料型態與運算子 11-3 C++語言的輸出與輸入
2019/5/3 JAVA Socket(UDP).
Review 1~3.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
C#快速導讀 流程控制.
openFileDialog1.ShowDialog() 對話匣
Welcome 國立台灣海洋大學 女一宿舍專區.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
Presentation transcript:

文件流

文件流 Stream FileStream BufferedStream MemoryStream NetworkStream …… 所有流的抽象 Stream FileStream BufferedStream MemoryStream NetworkStream ……

文件流 FileStream FileName FileMode FileAccess FileShare

FileMode 成员名称 说明 Append 打开现有文件并查找到文件尾,或创建新文件。FileMode.Append 只能同 FileAccess.Write 一起使用。任何读尝试都将失败并引发 ArgumentException。  Create 指定操作系统应创建新文件。如果文件已存在,它将被改写。这要求 FileIOPermissionAccess.Write。System.IO.FileMode.Create 等效于这样的请求:如果文件不存在,则使用 CreateNew;否则使用 Truncate。  CreateNew 指定操作系统应创建新文件。此操作需要 FileIOPermissionAccess.Write。如果文件已存在,则将引发 IOException。  Open 指定操作系统应打开现有文件。打开文件的能力取决于 FileAccess 所指定的值。如果该文件不存在,则引发 System.IO.FileNotFoundException 。  OpenOrCreate 指定操作系统应打开文件(如果文件存在);否则,应创建新文件。如果用 FileAccess.Read 打开文件,则需要 FileIOPermissionAccess.Read。如果文件访问为 FileAccess.Write 或 FileAccess.ReadWrite,则需要 FileIOPermissionAccess.Write。如果文件访问为 FileAccess.Append,则需要 FileIOPermissionAccess.Append。  Truncate 指定操作系统应打开现有文件。文件一旦打开,就将被截断为零字节大小。此操作需要 FileIOPermissionAccess.Write。试图从使用 Truncate 打开的文

FileAccess Read 打开文件,用于只读 Write 打开文件,用于只写 ReadWrite 打开文件,用于读写

FileShare 成员名称 说明 Delete 允许随后删除文件。 Inheritable 允许随后删除文件。  Inheritable 使文件句柄可由子进程继承。Win32 不直接支持此功能。  None 谢绝共享当前文件。文件关闭前,打开该文件的任何请求(由此进程或另一进程发出的请求)都将失败。  Read 允许随后打开文件读取。如果未指定此标志,则文件关闭前,任何打开该文件以进行读取的请求(由此进程或另一进程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。  ReadWrite 允许随后打开文件读取或写入。如果未指定此标志,则文件关闭前,任何打开该文件以进行读取或写入的请求(由此进程或另一进程发出)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。  Write 允许随后打开文件写入。如果未指定此标志,则文件关闭前,任何打开该文件以进行写入的请求(由此进程或另一进过程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。 

FileStream常用方法 名称 说明 Read 从流中读取字节块并将该数据写入给定缓冲区中。 ReadByte 从文件中读取一个字节,并将读取位置提升一个字节。 Write 使用从缓冲区读取的数据将字节块写入该流。 WriteByte 将一个字节写入文件流的当前位置。

FileStream示例 //创建一个文件流 FileStream fs = new FileStream("c:\\MyFile.txt", FileMode.Create); //将字符串的内容放入缓冲区 string str = "Welcome to the Garden!"; byte[] buffer = new byte[str.Length]; for (int i = 0; i < str.Length; i++) buffer[i] = (byte)str[i]; //写入文件流 fs.Write(buffer, 0, buffer.Length); StringBuilder sb = new StringBuilder(); //定位到流的开始位置 fs.Seek(0, SeekOrigin.Begin); //读取流中前7个字符 for (int i = 0; i < 7; i++) sb.Append((char)fs.ReadByte()); //显示读取的信息和流的长度 Console.WriteLine("读取内容为:{0}", sb.ToString()); Console.WriteLine("文件长度为:{0}", fs.Length); //关闭文件流 fs.Close();

数据流

数据流 TextReader BinaryReader StreamReader StringReader

数据流 StreamReader Read ReadBlock ReadLine ReadToEnd

StreamReader示例 //程序清单P16_5.cs: using System; using System.IO; namespace P16_5 { class BaseStreamSample static void Main() StreamReader sr = new StreamReader("c:\\MyFile.txt"); Console.WriteLine("CanRead: {0}", sr.BaseStream.CanRead); Console.WriteLine("CanWrite: {0}", sr.BaseStream.CanWrite); sr.Close(); StreamWriter sw = new StreamWriter("c:\\MyFile.txt"); Console.WriteLine("CanRead: {0}", sw.BaseStream.CanRead); Console.WriteLine("CanWrite: {0}", sw.BaseStream.CanWrite); sw.Close(); }

数据流 BinaryReader Read ReadByte(s) / ReadChar(s) / ReadString ReadBoolean ReadInt16/32/64 / ReadUInt16/32/64 ReadSingle / ReadDouble / ReadDecimal

数据流 TextWriter BinaryWriter StreamWriter StringWriter

数据流 StreamWriter Write WriteLine Demo P348

数据流 BinaryWriter Write Demo P349

FileStream与StreamReader比较 1. FileStream是一个较为底层的类,只能简单地读文件到缓存区,而StreamReader封装了一些高级方法如ReadLine() 2. FileStream可读可写,而StreamReader只能读不能写 3. FileStream不能指定编码(因为它看到的只是文件的二进制形式,当然无所谓编码),而StreamReader可以指定编码,一旦指定就不允许再更改,因此编码指定是放在它的构造方法里的。默认编码为System.Text.UTF8Encoding,实际上,在StreamReader的构造方法里,它会对文件进行编码检查,当然也可以不让它检查。 4. 若对是对二进制文件进行操作,最好使用BinaryReader,若要进行写操作,则用StreamWriter,同样StreamWriter也能按指定的编码进行读写 5. StreamReader的构造方法不一定需要FileStream,只需要文件名即可 6. StreamReader关闭后,与之相关的FileStream没有关闭,(通过FileStream的CanRead的测试)