-
Java I/O 输入输出流基本查看全部
-
FileOutStream继承了OutStream 实现了向文件中写byte数据的方法查看全部
-
这个节课讲行很不错,学到了如何使用递归算法对目录下的文件及子目录进行遍历查看全部
-
io(输入,输出流) 字节流(InputStream,OutputStream) InputStream抽象了应用程序读取数据的方式 OutputStream抽象了应用程序写数据的方式 eof = End 读到-1就读到结尾 键盘是输入的 int b = in.read();读取的是一个无符号填充到int低八位-1就结束了 in.read(byte[] buf)查看全部
-
RanddomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件↓查看全部
-
Java I/O输入输出流 1.编码问题 2.File类的使用 3.RandomAccessFile的使用 4.字节流使用 5.字符流使用 6.对象序列化和反序列化查看全部
-
爱你的宿命= =查看全部
-
BufferInputStream&BufferOutputStream 这两个流类为IO提供了带缓冲的操作,一般打开文件进行写入或读取操作时,都会加上缓冲,提高了IO性能 从应用程序中吧文件输入,相当于将一缸水导入另一缸水; FileOutputStream-->write()相当于一滴一滴把水转移过去 DataInputStream-->writeXXX()方便一些,相当于一瓢一瓢把水转移过去 BufferInputStream-->write()更加方便一些,相当于将水先存入桶中,一桶转查看全部
-
gbk编码 中文占2个字节,英文占1个字节 utf-8编码 中文占3个字节 英文占1个字节 utf-16be中文占用2个字节 英文占用也是2个字节。 当你的字节序列是某种编码的时候,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码。 public static void main(String[] args)throws Exception//抛出异常 String s="ABC"; byte[] bytes= s.toBytes("UTF-8"); String s2=new String(bytes,"UTF-8");查看全部
-
递归算法棒棒哒查看全部
-
序列化过程中子父类构造函数调用问题 1.一个类实现了serializable序列化接口,其子类都可以进行序列化操作 2.子类序列化,递归调用父类的构造器,原理,对象实例化构造函数就是被递归调用的; 3.对子类对象进行反序列化操作时,如果其父类没有实现序列化接口,那么其父类的构造函数会被调用;如果父类实现了序列化接口,则不会递归调用其构造函数。 *** 结论:【反序列化时】,向上递归调用构造函数会从【可序列化的一级父类结束】。即谁实现了可序列化(包括继承实现的),谁的构造函数就不会调用。查看全部
-
1.transient关键字:被transient修饰的元素,该元素不会进行jvm默认的序列化,但可以自己完成这个元素的序列化 注意:在以后的网络编程中,如果有某些元素不需要传输,那就可以用transient修饰,来节省流量;有效数据序列化,无效数据就不需要序列化了,提高效率 2.ArrayList源码中序列化和反序列化的方法,可以拿來直接用 private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException private void readObject(java.io.ObjectInputStream s) throws java.io.IOException,ClassNotFoundException 1)到ArrayList中找到 writeObject()方法,在本类中进行重写, private void writeObject(java.io.ObjectOutputStream s)throws IOException{ s.defaultWriteObject();//把jvm能默认序列化的元素进行序列化操作 s.writeInt(stuage);//自己完成stuage的序列化 } 2)反序列化: private void readObject(java.io.ObjectInputStream s) throws Exception{ s.defaultReadObject();//把jvm能默认反序列化的元素进行反序列化操作 this.stuage = s.readInt();//自己完成stuage的反序列化操作 } transient关键字修饰的属性默认是不能序列化的,但是可以使用writeObject自己完成这个元素的序列化。ArrayList就是用了此方法进行了优化操作。ArrayList最核心的容器Object[] elementData使用了transient修饰,但是在writeObject自己实现对elementData数组的序列化。只序列化实际有的元素,对于数组中空的元素不进行序列化。查看全部
-
对象的序列化(将 对象 进行保存),反序列化(读取已保存的对象序列) 1)对象序列化,解释将Object转化成byte序列,反之叫对象的反序列化 2)序列化流(ObjectOutputStream),是过滤流------>writeObject() 反序列化流(ObjectInputStream)----> readObject() 3)序列化接口 (Serializable) 对象必须实现序列化接口,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个规范查看全部
-
BufferedReader -- > readLine一次读一行 不识别换行符,不会自动换行 BufferedWriter/PrintWriter -- > writeLine写一行 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file))); line = br.readLine(); 一次读取一行,不能识别换行 一次写入一行 BufferedWriter bw.write(line); bw.newLine(); 单独换行操作 bw.flush(); PrintWriter pw.println(line);//自动换行 pw.flush()查看全部
-
2.字符流 1)编码问题 2)认识文本和文本文件 java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码) 文件是 byte byte byte ... 的数据序列 文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储结果 3)字符流(Reader Writer)---------->操作的是文本文件 字符的处理,一次处理一个字符 字符的底层仍然是基本的字节序列 字符流的基本实现 InputStreamReader 完成byte流解析为char流,按照编码解析 OutputStreamWriter 提供char流到byte流,按照编码处理查看全部
举报
0/150
提交
取消