




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、输入/输出概述文件的顺序访问文件的随机访问目录和文件管理 其他常用流处理输入输出概述l数据流(Stream): 一系列顺序的字符或字节l编码/解码:将字符映射为它的二进制形式的过程称作编码(encoding),反之,成为解码(decoding)。l编码表(encoding scheme): 字符有多种不同的编码方式,定义该如何编码每个字符的映射表 l输入/输出流:l输入数据流从外部设备到到计算机的数据流动l输出数据流从计算机到外部设备的数据流动l从结构上分:l字节流:无须编码与解码转换的二进制位串l字符流:经字符层面编码与解码转化的二进制位串。 计算机不区分字节与字符,内部它们均是二进制位串,
2、但字节是数据的二进制直接表示;文本则是经某种字符编码后的二进制位串。字节I/O 数值:199(字节流)二进制文件内容11000111 0 xC7文本I/O(字符ASCII码) 数值串:199(字符流) 文件文件内容00110001 00111001 00111001 0 x31 0 x39 0 x39解码编码输入字节流类输出字节流类输入字符流类输出字符流类l System类是继承Object类终极类,它有三个表示标准输入、标准输出和标准错误的类变量 (1)标准输入:in public static final InputStream in /对应键盘输入 (2)标准输出:out public
3、static final OutputStream in /对应显示器输出 (3)标准错误:err public static final PrintStream err /对应显示器输出字节流输入和输出接口ObjectInputStreamOutputStreamFilterInputStreamFilterOutputStreamDataInputStreamDataOutputStreamDataInputDataOutputRandomAccessFile目录和文件管理File类l java.io.File:java.lang.Object的子类,专门用来管理磁盘文件和目录。l每个Fi
4、le类的对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息,如文件或目录的名称、文件的长度、目录中所含文件的个数等。l调用File类的方法则可以完成对文件或目录的常用管理操作,如创建文件或目录、删除文件或目录、查看文件的有关信息等。lFile类构造方法 public File(String path): 用指定路径构造一个对象。public File(String path, String name): 用指定路径和字符串构造一个对象。 public File(File dir, String name): 用指定文件目录和字符串构造一个对象。 l常用方法:getName()
5、获取对象所代表的文件名getParent() 获取文件对象的路径的父类信息getPath() 获取对象所代表文件的路径名canRead() 测试能否从指定的文件中读数据canWrite() 测试能否对指定的文件写入数据exists() 测试文件是否存在length() 获取文件对象所代表的文件长度list() 获取文件对象指定的目录中文件列表getAbsolutePath() 获取文件的绝对路径getCanonicalPath() 获取文件对象路径名的标准格式isAbsolute() 测试此文件对象代表的文件是否是绝对路径isDirectory() 测试此文件对象代表的文件是否是一个目录isF
6、ile() 测试此对象所代表的是否是一个文件delete() 删除此对象指定的文件makdir() 创建一个目录,其路径名由此文件对象指定makdirs() 创建一个目录,其路径名由此文件对象指定并包括 必要的父目录l导入包:import java.io.*;l根据不同数据源和I/O任务,建立字节流/字符流对象。l若需要对字节或字符流信息组织加工为数据,在已建字若需要对字节或字符流信息组织加工为数据,在已建字节流或字符流对象上构建数据流对象。节流或字符流对象上构建数据流对象。l用I/O流对象类的成员方法进行读写操作,需要时设置读写位置指针。l关闭流操作。I/O流操作的一般步骤:流操作的一般步骤
7、:文件的顺序访问字节输入流文件lFileInputStream类:读取文件中字节数据的字节文件输入流类。lFileInputStream类构造方法lFileInputStream(String name) :用指定字符串创建对象。lFileInputStream(File file):用指定的文件对象创建对象。lFileInputStream类常用方法lread(): 从输入流中读取一个字节lread (byte b):将输入数据存放在指定的字节数组b中lread (byte b, int offset, int len):自输入流中的offset位置开始读取len个字节并存放在指定的数组b中
8、lavailable():返回输入流中的可用字节个数lskip (long n):从输入流中跳过n个字节。lFileOutputStream类:用于向文件写入字节数据的字节文件输出流。lFileOutputStream类构造方法lFileOutputStream(String name): 使用指定的字符串创建对象。lFileOutputStream(File file):使用指定的文件对象创建对象。lFileOutputStream类的常用方法lwrite(int b): 写入一个字节到文件输入流。lwrite(byte b): 写一个字节数组。lwrite(byte b,int offse
9、t, int len): 将字节数组b从offset位置开始的len个字节数组的数据写到输出流中。lgetFD(): 获取与此流关联的文件描述符。lclose(long n): 关闭输入/输出流,释放占用的所有资源。文件的顺序访问字节输出流文件举例:写读字节流文件 lT16WriteReadByteFile.javal展示:l文件读写的一般步骤l字节流输出到文件l显示字节文件的内容lFileInputStream和FileOutpuStream流泪不直接使用,而是与功能较强的I/O流类DataInputStream和DataOutputStream配合完成文件的高层次读写操作高层次读写操作。l
10、这两个流文件支持:这两个流文件支持:double, int, boolean,,字符串的读写。,字符串的读写。l举例:T16WriteReadDataFile.javal除封装外,写入和读出内容同上例。上两例区别:文件的顺序访问字符I/O流文件lFileWriter和FileReader类用于向文件写入/读出字符数据。lFileWriter类的构造方法lFileWriter(String fileName):用指定的文件名创建本类对象。lFileWriter(File file):用指定的文件对象创建本类对象。lFileReader类的构造方法lFileReader(String fileNa
11、me):用指定的文件名创建一个FileReader对象。lFileReader(File file):用指定的文件对象创建一个FileReader对象。lFileReader和FileWriter这两个类没有自己独特的成员方法,它们的成员方法都直接继承自父类的。lT16WriteReadCharFile.javal展示:l字符流输出到文件(数值要保存成字符形式,就的形式转换)l读出字符文件的内容文件的随机访问l随机存取文件:可以定位到任意位置处进行读和写的文件。lJava随机文件是字节流文件。l文件指针:指示文件操作的当前位置(顺序文件时隐式的,随机文件有操纵指针移动的相关方法)。lRando
12、mAccessFile类的构造方法lRandomAccessFile(File file, String mode):用指定字符串和存取模式创建其类对象。lRandomAccessFile(String name, String mode):用指定字符串和存取模式创建其类对象。l存取模式: lr_代表以只读方式打开文件;lrw_代表以读写方式打开文件。lRandomAccessFile对象的读写操作和DataInput/DataOutput对象操作方式一样,可以使用在DataInputStream和DataOutputStream里出现的所有read()和write()方法。l RandomA
13、ccessFile类中的常用成员方法:lread()lread(byte b)lread(byte b,int offset,int len)llength()lgetFilePointer() /取文件的指针位置 lseek(long pos)/指针放pos处lwrite(int b)lwrite(byte b)lwrite(byte b,int offset,int len)lclose()l新建RandomAccessFile对象文件位置指针位于文件开头处。l每次读写操作后,文件位置指针都后移所读写的字节数。l利用seek()方法可以移动文件指针到一个新的位置。l利用getPointer
14、()方法可以获得本文件当前的文件位置指针。l利用length()方法可以得到文件的字节长度。l利用getPointer()方法和length()方法可以判断读取的文件是否到文件尾部。l顶层类:Reader和Writer。lpublic abstract class Readerextends Objectimplements Readable, Closeablel用于读取字符流的抽象类。子类必须实现的方法只有 read(char, int, int) 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。lpublic abstract class Wr
15、iterextends Objectimplements Appendable, Closeable, Flushablel写入字符流的抽象类。子类必须实现的方法仅有 write(char, int, int)、flush() 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。ljava.io包中用于处理字符流的包中用于处理字符流的基本类(继承抽象类基本类(继承抽象类reader和和writer并实现之)并实现之) InputStreamReader和和OutputStreamWriter:lInputStreamReader是字节流通向字符流的桥梁:
16、它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。lOutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。lInputStreamReader主要构造方法:主要构造方法: InputStreamReader(InputStream in)创建一个使用默认字符集的 InputStreamReader。InputStreamReader(InputStream in, Charset c
17、s)创建使用给定字符集的 InputStreamReader。InputStreamReader(InputStream in, CharsetDecoder dec)创建使用给定字符集解码器的 InputStreamReader。InputStreamReader(InputStream in, String charsetName)创建使用指定字符集的 InputStreamReader。注意:以字节流为输入参数!lOutputStreamWriter主要构造方法:主要构造方法:lOutputStreamWriter(OutputStream out)创建使用默认字符编码的 OutputS
18、treamWriter。OutputStreamWriter(OutputStream out, Charset cs)创建使用给定字符集的 OutputStreamWriter。OutputStreamWriter(OutputStream out, CharsetEncoder enc)创建使用给定字符集编码器的 OutputStreamWriter。OutputStreamWriter(OutputStream out, String charsetName)创建使用指定字符集的 OutputStreamWriter。l注意:以字节流为输入参数!lFileReader和和FileWrit
19、er的使用:的使用:lpublic class FileReaderextends InputStreamReaderl用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自己指定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader。lFileReader 用于读取字符流。要读取原始字节流,请考虑使用 FileInputStream。lpublic class FileWriterextends OutputStreamWriterl用来写入字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是可接受的。要自己指定这些值,可以先在 FileOutputStream 上构造一个 OutputStreamWriter。l文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设施维护合同履约金协议
- 羽绒制品企业质量管理与质量保证体系考核试卷
- 糖批发企业市场预测与决策支持考核试卷
- 电力设备的智能运维与维修考核试卷
- 房屋坍塌安全避险与自救指南
- 环境监测与生态红线管理考核试卷
- 弹射玩具行业生产调度与制造执行系统考核试卷
- 电机制造工艺装备升级方案考核试卷
- 空调器自动清洁技术考核试卷
- 阳光自信心理安全教育
- 南京师范大学自主招生个人陈述范文与撰写要点
- 铁粉运输合同协议
- 计算机网络安全知识试题及答案2025年计算机二级考试
- 广州广州市天河区华阳小学-毕业在即家校共话未来-六下期中家长会【课件】
- 第4单元 亮火虫(教学设计)-2024-2025学年粤教花城版(2024)音乐一年级下册
- 车间生产材料管理制度
- 公司事故隐患内部报告奖励制度
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- 美国数学竞赛AMC8讲座课件
- 2020年国家义务教育质量测查德育科目模块一模拟试题含参考答案
- 导管固定-PPT课件
评论
0/150
提交评论