IO笔记总结2.docx
- 文档编号:1925916
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:15
- 大小:87.18KB
IO笔记总结2.docx
《IO笔记总结2.docx》由会员分享,可在线阅读,更多相关《IO笔记总结2.docx(15页珍藏版)》请在冰点文库上搜索。
IO笔记总结2
第十二天重点笔记
重点方法必须掌握。
static void
reverse(List
> list)
反转指定列表中元素的顺序。
static
superT>> void sort(List 根据元素的自然顺序对指定列表按升序进行排序。 static void shuffle(List > list) TreeMap的排序是按键的值来排FilterReader、FilterReader I/O操作 一、file类; 在文件路径中写到程序中“\\”可以用“/”来代替。 最(安全)不容易出错的是用file的sepreate方法来隔离;但这样会很麻烦。 文件的相对路径与绝对路径的区别: 绝对路径: 在路径前面有盘符的路径如: 相对路径: 常用的方法: boolean createNewFile() 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个 注意: 在这理会出现异常。 boolean delete() 删除此抽象路径名表示的文件或目录。 boolean exists() 测试此抽象路径名表示的文件或目录是否存在。 多用在创建文件之前进行的判断。 String getName() 返回由此抽象路径名表示的文件或目录的名称。 String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 流的分类; 1,那流的方向。 分为输出流输入流 2,按流的处理单位分为字节流字符流 3.、按功能的不同分为节点流处理流 String(byte[] bytes,int offset,int length) 通过使用平台的默认字符集解码指定的byte子数组,构造一个新的String。 重点看一下 如何让我们每次写入的数字不被覆盖。 FileOutputStream(String name,boolean append) 创建一个向具有指定name的文件中写入数据的输出文件流。 注意在使用对象输出输入流的时候一定要让对象实现一个序列化接口。 这个接口把我们素要输入的对象转化成二进制的(字节)0101.。 。 。 。 机器码。 在有处理流和字节流的时候。 我们关流的时候要注意。 先刷新输出流(在刷新的时候我们只需刷新外边的处理流即可。 )在关闭输出流最后关闭输入流。 方法摘要 Writer append(char c) 将指定字符添加到此writer。 Writer append(CharSequence csq)//实际就是字符串。 将指定字符序列添加到此writer。 Writer append(CharSequence csq,int start,int end) 将指定字符序列的子序列添加到此writer.Appendable。 OutPutStream 此抽象类是表示输出字节流的所有类的超类。 输出流接受输出字节并将这些字节发送到某个接收器。 需要定义OutputStream子类的应用程序必须始终提供至少一种可写入一个输出字节的方法。 常用直接已知子类: FileOutputStream,ObjectOutputStream, (ObjectOutputStream是处理流: FileOutPutStream的外层) FileOutputStream, FileOutputStream,用于写入诸如图像数据之类的原始字节的流。 要写入字符流,请考虑使用filewriter. 常见的构造方法: FileOutputStream(String name) 创建一个向具有指定名称的文件中写入数据的输出文件流。 FileOutputStream(String name,boolean append) 创建一个向具有指定name的文件中写入数据的输出文件流。 FileOutputStream(File file) 创建一个向指定File对象表示的文件中写入数据的文件输出流。 常用的方法: void close() 关闭此文件输出流并释放与此流有关的所有系统资源。 void write(byte[] b) 将b.length个字节从指定byte数组写入此文件输出流中。 void write(byte[] b,int off,int len) 将指定byte数组中从偏移量off开始的len个字节写入此文件输出流。 ObjectOutputStream, ObjectOutputStream将Java对象的基本数据类型和图形写入OutputStream。 可以使用ObjectInputStream读取(重构)对象。 通过在流中使用文件可以实现对象的持久存储。 如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象。 (针对网络编程) 只能将支持java.io.Serializable接口的对象写入流中。 每个serializable对象的类都被编码,编码内容包括类名和类签名、对象的字段值和数组值,以及从初始对象中引用的其他所有对象的闭包。 (就是说子用对象流写入对象的时候一定要去实现Serializable接口。 这个借口没有方法非常方便。 ) writeObject方法用于将对象写入流中。 所有对象(包括String和数组)都可以通过writeObject写入。 可将多个对象或基元写入流中。 必须使用与写入对象时相同的类型和顺序从相应ObjectInputstream中读回对象。 例如,要写入可通过ObjectInputStream中的示例读取的对象,请执行以下操作: FileOutputStreamfos=newFileOutputStream("t.tmp"); ObjectOutputStreamoos=newObjectOutputStream(fos); 最常用的构造方法: ObjectOutputStream(OutputStream out) 创建写入指定OutputStream的ObjectOutputStream。 最常用的方法: void write(byte[] buf) 写入一个byte数组。 void write(byte[] buf,int off,int len) 写入字节的子数组。 void write(int val) 写入一个字节。 void writeBoolean(boolean val) 写入一个boolean值。 void writeByte(int val) 写入一个8位字节。 void writeBytes(String str) 以字节序列形式写入一个String。 void writeChar(int val) 写入一个16位的char值。 void writeChars(String str) 以char序列形式写入一个String。 void writeFloat(float val) 写入一个32位的float值。 void writeInt(int val) 写入一个32位的int值。 void writeLong(long val) 写入一个64位的long值。 void writeObject(Object obj) 将指定的对象写入ObjectOutputStream。 protected void writeObjectOverride(Object obj) 子类用于重写默认writeObject方法的方法。 void writeShort(int val) 写入一个16位的short值。 InPutStream 直接已知子类: FileInputStream,ObjectInputStream, (ObjectInputStream是处理流是FileInputStream外层。 ) InPutStream此抽象类是表示字节输入流的所有类的超类。 需要定义InputStream子类的应用程序必须总是提供返回下一个输入字节的方法。 FileInputStream FileInputStream从文件系统中的某个文件中获得输入字节。 哪些文件可用取决于主机环境。 FileInputStream用于读取诸如图像数据之类的原始字节流。 要读取字符流,请考虑使用FileReader。 最常用的构造方法 FileInputStream(File file) 通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的File对象file指定。 FileInputStream(String name) 通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的路径名name指定。 最常用的方法 int read() 从此输入流中读取一个数据字节。 int read(byte[] b) 从此输入流中将最多b.length个字节的数据读入一个byte数组中。 int read(byte[] b,int off,int len) 从此输入流中将最多len个字节的数据读入一个byte数组中。 ObjectInputStream ObjectInputStream对以前使用ObjectOutputStream写入的基本数据和对象进行反序列化。 ObjectOutputStream和ObjectInputStream分别与FileOutputStream和FileInputStream一起使用时,可以为应用程序提供对对象图形的持久存储。 ObjectInputStream用于恢复那些以前序列化的对象。 其他用途包括使用套接字流在主机之间传递对象,或者用于编组和解组远程通信系统中的实参和形参。 ObjectInputStream确保从流创建的图形中所有对象的类型与Java虚拟机中显示的类相匹配。 使用标准机制按需加载类。 只有支持java.io.Serializable或java.io.Externalizable接口的对象才能从流读取。 readObject方法用于从流读取对象。 应该使用Java的安全强制转换来获取所需的类型。 在Java中,字符串和数组都是对象,所以在序列化期间将其视为对象。 读取时,需要将其强制转换为期望的类型。 例如,要从由ObjectOutputStream中的示例写入的流读取: FileInputStreamfis=newFileInputStream("t.tmp"); ObjectInputStreamois=newObjectInputStream(fis); inti=ois.readInt(); Stringtoday=(String)ois.readObject(); Datedate=(Date)ois.readObject(); ois.close(); 最常用的构造方法: ObjectInputStream(InputStream in)//这里可以直接用他的子类fileinputstream. 创建从指定InputStream读取的ObjectInputStream。 最常用的方法: int read() 读取数据字节。 int read(byte[] buf,int off,int len) 读入byte数组。 boolean readBoolean() 读取一个boolean值。 byte readByte() 读取一个8位的字节。 char readChar() 读取一个16位的char值。 Writer: 直接已知子类: BufferedWriter,CharArrayWriter,FilterWriter,OutputStreamWriter,PrintWriter,StringWriter 写入字符流的抽象类。 子类必须实现的方法仅有write(char[],int,int)、flush()和close()。 但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。 BufferedWriter 将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。 可以指定缓冲区的大小,或者接受默认的大小。 在大多数情况下,默认值就足够大了。 该类提供了newLine()方法,它使用平台自己的行分隔符概念,此概念由系统属性line.separator定义。 并非所有平台都使用新行符('\n')来终止各行。 因此调用此方法来终止每个输出行要优于直接写入新行符。 通常Writer将其输出立即发送到底层字符或字节流。 除非要求提示输出,否则建议用BufferedWriter包装所有其write()操作可能开销很高的Writer(如FileWriters和OutputStreamWriters)。 例如, PrintWriterout =newPrintWriter(newBufferedWriter(newFileWriter("foo.out"))); 将缓冲PrintWriter对文件的输出。 如果没有缓冲,则每次调用print()方法会导 构造方法摘要 BufferedWriter(Writer out) 创建一个使用默认大小输出缓冲区的缓冲字符输出流。 致将字符转换为字节,然后立即写入到文件,而这是极其低效的。 方法摘要 void close() 关闭此流,但要先刷新它。 void flush() 刷新该流的缓冲。 void newLine() 写入一个行分隔符。 void write(char[] cbuf,int off,int len) 写入字符数组的某一部分。 void write(int c) 写入单个字符。 void write(String s,int off,int len) 写入字符 OutputStreamWriter, OutputStreamWriter是字符流通向字节流的桥梁: 可使用指定的charset将要写入流中的字符编码成字节。 它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。 每次调用write()方法都会导致在给定字符(或字符集)上调用编码转换器。 在写入底层输出流之前,得到的这些字节将在缓冲区中累积。 可以指定此缓冲区的大小,不过,默认的缓冲区对多数用途来说已足够大。 注意,传递给write()方法的字符没有缓冲。 为了获得最高效率,可考虑将OutputStreamWriter包装到BufferedWriter中,以避免频繁调用转换器。 例如: Writerout =newBufferedWriter(newOutputStreamWriter(System.out)); 构造方法摘要 OutputStreamWriter(OutputStream out) 创建使用默认字符编码的OutputStreamWriter。 最常用的方法: void write(char[] cbuf,int off,int len) 写入字符数组的某一部分。 void write(int c) 写入单个字符。 void write(String str,int off,int len) 写入字符串的某一部分。 PrintWriter, 向文本输出流打印对象的格式化表示形式。 此类实现在PrintStream中的所有print方法。 它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。 与PrintStream类不同,如果启用了自动刷新,则只有在调用println、printf或format的其中一个方法时才可能完成此操作,而不是每当正好输出换行符时才完成。 这些方法使用平台自有的行分隔符概念,而不是换行符。 此类中的方法不会抛出I/O异常,尽管其某些构造方法可能抛出异常。 特别的构造方法: 可实现自动刷新(将Boolean改为true即可) PrintWriter(OutputStream out,boolean autoFlush) 通过现有的OutputStream创建新的PrintWriter。 最常用的方法: void print(boolean b) 打印boolean值。 void print(char c) 打印字符。 void print(char[] s) 打印字符数组。 void print(double d) 打印double精度浮点数。 void print(float f) 打印一个浮点数。 void print(int i) 打印整数。 void print(long l) 打印long整数。 void print(Object obj) 打印对象。 void print(String s) 打印字符串。 void println() 通过写入行分隔符字符串终止当前行。 void println(boolean x) 打印boolean值,然后终止该行。 void println(char x) 打印字符,然后终止该行。 void println(char[] x) 打印字符数组,然后终止该行。 void println(double x) 打印双精度浮点数,然后终止该行。 void println(float x) 打印浮点数,然后终止该行。 void println(int x) 打印整数,然后终止该行。 void println(long x) 打印long整数,然后终止该行。 void println(Object x) 打印Object,然后终止该行。 void println(String x) 打印String,然后终止该行。 void write(char[] buf) 写入字符数组。 void write(char[] buf,int off,int len) 写入字符数组的某一部分。 void write(int c) 写入单个字符。 void write(String s) 写入字符串。 void write(String s,int off,int len) 写入字符串的某一部分。 FilterWriter, 构造方法摘要 protected FilterWriter(Writer out) 创建一个新的filteredwriter。 方法摘要 void close() 关闭此流,但要先刷新它。 void flush() 刷新该流的缓冲。 void write(char[] cbuf,int off,int len) 将字符写入数组的某一部分。 void write(int c) 写入单个字符。 void write(String str,int off,int len) 写入一部分字符串。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IO 笔记 总结
![提示](https://static.bingdoc.com/images/bang_tan.gif)