栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习之IO流

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习之IO流

File

封装一个磁盘路径,文件路径、文件夹路径、不存在的路径;

  1. File file=new File(Spath)/(Fp,Sc)/(Sp,Sc);new只会在内存中创建一个File类型的对象,不会在磁盘中创建;
  2. file.length/exists/isFile/isDirectory/getName/getParent/getAbsolutePath;
  3. file.createNewFile/mkdir/mkdirs/delete;
    createNewFile:创建文件的路径不对,会抛出异常:java.io.IOException;这个IO异常会编译报错,强制要求预先处理;创建成功,返回true;
  4. String[] list=file.list();File[] fs=file.listFiles();
  5. delete只能删除文件和空文件夹;mkdirs只创建成功一个也返回true;
IO流:InputStream/OutputStream
  1. 流Stream:输入流in(读取),输出流out(写出);字节流和字符流;
    输入流:数据从磁盘(文件)到内存(程序);输出流:数据从内存(程序)到磁盘(文件);
    输入流用来读取数据,输出流用来输出数据;流是单方向的;
  2. 字节输入流:InputStream,FileInputStream,BufferedInputStream,ObjectInputStream;
    InputStream fis=new FileInputStream(File/Spath);try-catch异常;
    is.read():每次读取一个字节,然后后移一个字节;返回int类型,没有数据(末尾)返回-1;
    InputStream bis=new BufferedInputStream(is)/(is,size);
  3. 字符输入流:Reader,FileReader,BufferedReader,InputStreamReader;
    Reader fr=new FileReader(File/Spath);
    Reader br=new BufferedReader®/(r,size);
  4. 字节输出流:OutputStream,FileOutputStream,BufferedOutputStream,ObjectOutputStream;
    OutputStream fos=new FileOutputStream(File/Spath,true);默认false,覆盖;true,追加;
    OutputStream bos=new BufferedOutputStream(os)/(os,size);
  5. 字符输出流:Writer,FileWriter,BufferedWriter,OutputStreamWriter;PrintWriter;
    Writer fw=new FileWriter(File/Spath)/(File/Spath,true);默认false,覆盖;true,追加;
    Writer bw=new BufferedWriter(w)/(w,size);
  6. 编码转换流:InputStreamReader(is,charset),OutputStreamWriter(os,charset);
    char[] ch=new char[8192];int len=isr.read(ch);osw.write(s);
    String s=new String(ch,0,len);
  7. 最后创建的流最先关闭;多条关流语句需要各自try-catch;
    InputStream抽象类是字节输入流所有类的超类,OutputStream抽象类是输出字节流的所有类的超类。
    Reader用于读取字符流的抽象类,Writer写入字符流的抽象类。
Serializable序列化和反序列化

Serializable是一个空接口,标记这个类可以被序列化;java.io.NotSerializableException;

  1. 序列化:把对象按照固定的格式转成一串字节值保存到磁盘;
    序列化输出流:ObjectOutputStream oos=new OOS(fos);oos.writeObject(o);
  2. 反序列化:读取磁盘中之前序列化好的数据,重新恢复成对象;
    反序列化输入流:ObjectInputStream ois=new OIS(fis);ois.readObject();
  3. UID:被序列化的文件有一个唯一id,若没有添加,编译器会自动产生一个;反序列化时的UID必须与序列化时的UID一致;序列化的对象改变,则UID的值改变;
  4. 不需要序列化的数据:static修饰,属于类资源,不随着对象被序列化输出; transient(临时的)修饰,只在程序运行期间在内存中存在,不会被序列化持久保存;
  5. 编码转换流:InputStreamReader/OutputStreamWriter;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445960.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号