-
treansient 关键字:改元素不会进行jvm默认序列化,但可以自己完成这个元素的序列化 Student.java //自定义序列化 private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException{ s.defaulWriteObject();//把jvm能默认序列化的元素进行序列化操作 s.writeInt(stuage);//自己完成stuage的序列化 } //自定义反序列化 private void readObject(java.io.ObjectIntputStream s) throws java.io.IOException,ClassNotFoundException{ s.defaultReadObject();//把jvm能默认反序列化的元素进行反序列化操作 this.stuage=s.readInt();//自己完成stuage的反序列化操作 }查看全部
-
//Student implements Serializable String file = "demo/obj.dat"; //1.对象的序列化 ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(file)); Student stu = new Student("1001","张三",20); oos.writeObject(stu); oos.flush(); oos.close(); //反序列化 ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file)); Student stu = (Student)ois.readObject(); System.out.println(stu); ois.close();查看全部
-
对象序列化和反序列化 1、对象序列化就是将Object转换成byte序列,反之叫对象的反序列化 2、序列化流(ObjectOutputStream),是过滤流 反序列化流(ObjectInputStream)-->readObject 3、序列化接口(Serializable) 对象必须实现序列化接口,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个标准查看全部
-
Buffered/FileWriter 字符流的过滤器 BufferedReader --> readLine 一次读已行 BufferedWriter/PrintWriter --> 写一行查看全部
-
FileReader fr=new FileReader("e:\\javaio\\ioomc.txt");//没有编码格式的方法 FileWriter fw=new FileWriter("e:\\javaio\\ioomc2.txt",true);//true是追加 char[] buffer =new char[2056]; int c; while((c=fr.read(buffer,0,buffer.length))!=-1){ fw.write(buffer,0,c); fw.flush(); } fr.close(); fw.close();查看全部
-
//字符流实现读写文件,应注意编码问题 //读文件 FileInputStream in = new FileInputStream("e:\\javaio\\ioomc.txt"); InputStreamReader isr=new InputStreamReader(in,"gbk");//默认项目编码,操作时要根据实际文件的编码 //写文件 FileOutputStream out=new FileOutputStream("e:\\javaio\\imooccutf81.txt"); OutputStreamWriter osw =new OutputStreamWriter(out,"utf-8"); /*int c; while((c=isr.read())!=-1){ System.out.print((char)c); }*/ //通过数组保存 char[] buffer = new char[8*1024]; int c; //批量读取,放入buffer这个字符数组,从第0个位置开始放置,最多放buffer.length个 while((c=isr.read(buffer,0,buffer.length))!=-1){ String s=new String(buferr,0,c,"gbk"); System.ou.print(s); osw.write(buffer,0,c); osw.flush(); } isr.close(); osw.close();查看全部
-
字符流 1、编码问题 2、认识文本和文本文件 java的文件(char)是16为无符号整数,是字符的unicode编码(双字节编码) 文件是byte byte byte ...的数据序列 文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储结果 3、字符流(Reader Writer)-->操作的是文本文件 字符处理,一次处理一个字符 字符的底层依然是基本的字节序列 4、字符流的基本实现 InputStreamReader 完成byte流解析为char流,安装编码解析 OutputStreamWriter 提供char流到byte流,按照编码处理查看全部
-
RandomAccessFilhttp://img1.sycdn.imooc.com//55adaa500001a1db12800720-120-68.jpge查看全部
-
批量文件拷贝&利用带缓冲的字节流,实现文件拷贝&单字节,不带缓冲进行文件拷贝 效率:批量文件拷贝最快,其次带缓冲拷贝,最后单字节拷贝查看全部
-
http://img1.sycdn.imooc.com//55ada987000132e312800720-120-68.jpg查看全部
-
File查看全部
-
//单字节,不带缓冲进行文件拷贝 public static void copyFileByByte(File srcFile,File desFile)throws IOException{ if(!srcFile.exists()){ throw new IllegalArgumentException("文件:"+srcFile+"不存在"); } if(!srcFile.isFile()){ throw new IllegalArgumentException(src+"不是文件"); } FileInputStream in=new FileInputStream(srcFile); FileOutputStream out =new FileOutputStream(desFile); int c; while((c=in.read())!=-1){ out.write(c); out.flush(); } in.close(); out.close(); }查看全部
-
public String[] list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 exists()方法用于判断文件或目录是否存在 file.list() 返回的是 字符串数组 直接子的名称,不包含子目录下的内容 file.listFiles() 返回当前目录下的所有子目录和文件的文件数组名称 ======================================== 如果要遍历子目录下的内容就需要构造成File对象做递归操作 //throws IOException 回避了IO的抛出异常 File[] files = dir.listFiles();//返回的是直接子目录(文件)的抽象 if (file!=null && files.length > 0){ for(File file:files){ if(file.isDrectory()){ listDirectory(file); }else{ System.out.println(file); } } }查看全部
-
//利用带缓冲的字节流,实现文件拷贝 public static void copyFileByBuffer(File srcFile,File destFile)throws IOException{ if(!srcFile.exists()){ throw new IllegalArgumentException("文件:"+srcFile+"不存在"); } if(!srcFile.isFile()){ throw new IllegalArgumentException(src+"不是文件"); } BuffereInputStream bis = new BufferedInputStream(new FileInputStream(srcFile)); BuffereOutputStream bis = new BufferedOutputStream(new FileOutputStream(desFile)); int c; while((c=bis.reand())!-1){ bos.write(c); bos.flush();//刷新缓存区 } bis.close(); bos.close(); }查看全部
-
BufferedInputStream&BufferedOutputStream 提供了带缓存区的操作,一般打开文件进行写入或读取操作时,都会加上缓冲,这种流模式提高了IO的性能 从应用程序中把输入放入文件,相当于将一罐水倒入到另外一个罐中: FileOutputStream-->write()方法相当于一滴一滴地把水“转移”过去 DataOutputStream-->writeXxx()方法会方便一些,相当于一瓢一瓢把水“转移” BuffereOutputStream-->write()方法更方便,相当于一瓢一瓢先放入 桶中,在从桶中倒入到另外一个罐中查看全部
举报
0/150
提交
取消