张孝祥Java高级视频02_IO输入与输出 精要提纲27647

上传人:汽*** 文档编号:498897097 上传时间:2023-02-24 格式:DOC 页数:21 大小:74KB
返回 下载 相关 举报
张孝祥Java高级视频02_IO输入与输出 精要提纲27647_第1页
第1页 / 共21页
张孝祥Java高级视频02_IO输入与输出 精要提纲27647_第2页
第2页 / 共21页
张孝祥Java高级视频02_IO输入与输出 精要提纲27647_第3页
第3页 / 共21页
张孝祥Java高级视频02_IO输入与输出 精要提纲27647_第4页
第4页 / 共21页
张孝祥Java高级视频02_IO输入与输出 精要提纲27647_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《张孝祥Java高级视频02_IO输入与输出 精要提纲27647》由会员分享,可在线阅读,更多相关《张孝祥Java高级视频02_IO输入与输出 精要提纲27647(21页珍藏版)》请在金锄头文库上搜索。

1、张孝祥Java高级视频02_IO输入与输出 精要提纲276471File类 IO包中唯一代表磁盘文件本身信息的类,而不是文件中的内容 定义了一些与平台无关的方法来操作文件,例如 创建、删除、重命名文件 Java中目录被当作一种特殊的文件,list方法可返回目录中的所有子目录和文件名 Java可正确处理Unix和Dos的路径分隔符 构造方法:File(String filename) exits方法 delete方法 createNewFile方法 getName方法 getPath方法 getAbsoluteFile方法 getParent方法 canRead方法 isDirectory方法

2、lastModified方法Date的构造方法Date(int)2-3RandomAccessFile类 提供了众多的文件访问方法 支持“随机访问”方式,在随机读写等长记录格式的文件时有很大的优势 仅限于操作文件,不能访问其他的IO设备,如网络、内存映像等 2种构造方法: RandomAccessFile(f, rw) RandomAccessFile(f, r) write方法 close方法 skipBytes方法 read方法 byte buf = new byte8; int len = randomAccessFile.read(buf); seek方法 writeInt方法 rea

3、dInt方法 中文等字符串变换为字符时长度难判断 writeChar方法 writeChars方法 readChar方法 char在Java内部是Unicode编码,1个char占2个byteString的getBytes方法、trim方法4流 字节序列的抽象概念 文件是数据的静态存储形态,流是数据传输时的形态 流类分为2个大类:节点流类、过滤流类(处理流类)InputStream类 Java中,描述所有输入流的抽象概念 方法: int read() int read(byte b) int read(byte b, int off, int len) long skip(long n) in

4、t available() 一般不一直循环判断available(耗费CPU资源),而使用read方法的阻塞(读不到东西就会阻塞,流结束或关闭后会返回-1) void mark(int readlimit) void reset() boolean markSupported() mark、skip、reset只适用于一些包装流,不适用于节点流 void close()OutputStream类 Java中,描述所有输出流的抽象概念 方法: void write(int b) 仅写入整数的最低位的1个字节 void write(byte b) void write(byte b, int of

5、f, int len) void flush() void close() 一个关于IO缓冲区的刻骨铭心的经历:写入log或err文件时,写一条flush一下,不然出错时没把出错信息写如文件。Input、Output都是针对当前编写的程序而言的5FileInputStream类与FileOutputStream类 分别用来创建磁盘文件的输入流和输出流对象,构造函数指定文件路径和文件名 创建FileInputStream实例对象时,指定文件应当存在且可读;创建FileOutputStream实例对象时,指定文件可存在(可能覆盖)或不存在 FileInputStream类构造方法: new Fil

6、eInputStream(String filename) new FileInputStream(File file) FileOutputStream类构造方法: new FileOutputStream(String filename) new FileOutputStream(File file) FileOutputStream类的方法: write(byte) out.write(str.getBytes(); close() FileInputStream类的方法: read方法 byte buf = new byte1024; int len = in.read(buf); n

7、ew String(buf, 0, len); 方法定义时,可throws ExceptionReader与Writer类 是所有字符流类的抽象基类,用于简化对字符串的输入输出编程,即用于读写文本数据 FileWriter类构造方法:FileWriter(String filename)等 FileReader类构造方法:FileReader(String filename)等 FileWriter类的方法: write(String) out.write(str); close() FileReader类的方法 read方法 char buf = new char1024; int len

8、= in.read(buf); new String(buf, 0, len); read不能读入字符串,因它不知道字符串到何处结束6PipedInputStream与PipedOutputStream类 用于在应用程序中创建管道通信 PipedOutputStream的方法: write方法、close方法 connect(PipedInputStream) PipedInputStream的方法: read方法、close方法 connect(PipedOutputStream)PipedWriter和PipedReader类 与前相似,字符流类使用管道流类,可以实现各个程序模块之间的松耦

9、合通信强内聚、松耦合ByteArrayInputStream和ByteArrayOutputStream类 用于以IO流的方式来完成对字节数组内容的读写,来支持类似内存虚拟文件或者内存映像文件的功能 ByteArrayInputStream的构造方法: ByteArrayInputStream(byte buf) ByteArrayInputStream(byte buf, int offset, int length) ByteArrayOutputStream的构造方法: ByteArrayOutputStream() 创建32字节的缓冲区 ByteArrayOutputStream(in

10、t) 创建指定大小的缓冲区 数据过多时,缓冲区会自动增长 这两个类可以创建内存虚拟文件,可以提供给需要流对象的程序模块 ByteArrayOutputStream的方法: byte toByteArray()Character的char toUpperCase(char)静态方法StringReader和StringWriter类 用来以字符IO流的方式处理字符串,对应于ByteArrayInputStream和ByteArrayOutputStream类重视IO程序代码的复用 System.in是InputStream类型的实例对象;System.out是PrintStream类的实例对象

11、不论各种底层物理设备用什么方式实现数据的终止点,InputStream的read方法总是返回-1来表示输入流的结束 Windows中Ctrl+Z、Unix中Ctrl+D可以产生键盘输入流的结束标记 建议: 要编程从键盘上连续读取一大段数据时,应尽量讲读取数据的过程放在函数中完成,使用-1来作为键盘输入的结束点。 在该函数中编写的程序代码不应直接使用System.in读取数据,而是用一个InputStream类型的形参对象来读取数据,然后将Ststem.in作为实参传递给InputStream类型的形参来调用该函数。对于System.out也类似。7-8字符编码 计算机里只有数字,计算机软件里的

12、一切都是数字来表示的 字符a对于数字97(0x61),字符b对应数字98(0x62),这种字符与数字对应的编码规则被称为ASCII(美国标准信息交换码)。ASCII的最高bit位都为0,即数字在0到127(0x7F)之间。 中国大陆将每个中文字符都用2个字节的数字来表示,中文字符的每个字节的最高位bit都为1,中国大陆为每个中文字符制定的编码规则称为GB2312(国标码)。 在GB2312的基础上,对更多的中文字符(包括繁体)进行了编码,新的编码规则称为GBK。 在中国大陆使用的计算机系统上,GBK和GB2312就被称为该系统的本地字符集。 中国的“中”字,在中国大陆的编码是0xD6D0,而在

13、中国台湾的编码是0xA4A4。台湾地区对中文字符集的编码规则称为BIG5(大五码)。Unicode编码 ISO(国际标准化组织)将全世界所有的符号进行了统一编码,称之为Unicode编码。 “中”这个符号,在Unicode中对应0x4E2D。 Unicode编码的字符都占用2个字节的大小,对于ASCII码所表示的字符,只是简单地在ASCII码原来占用的一个字节前面,增加一个所有bits为0的字节。 Unicode只占用2个字节,编码的字符个数不会超过216=65536(0xFFFF=65535),实际上,Unicode编码中还保留了两千多个数值没有用于字符编码。 在相当长的一段时期内,本地化字

14、符编码将与Unicode编码共存。 Java中的字符使用的都是Unicode编码,Java在通过Unicode保证跨平台特性的前提下,也支持本地平台字符集。UTF-8编码 ASCII码字符保持原样,仍然只占用1个字节,对于其它国家的字符,UTF-8使用2或3个字节来表示。 使用UTF-8编码的文件,通常要用EF BB BF作为文件开头的3个字节数据。 字符的UTF-8编码与Unicode编码之间的转换关系对应下列规则: u0001和u007f之间的字符,UTF-8编码为:(byte)c; 即0xxxxxxx(填7bits)(共可表示7bits范围内) u0000或其范围在u0080和u07ff之间的字符,UTF-8编码为:(byte)(0xc0|(0x1f&(c8),(byte)(0x80|(0x3f&c) 即110xxxxx(填高位5bits) 10xxxxxx(填低位6bits)(共可表

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号