第九章:IO流

1. java.io.File类: 用来代表真实文件或目录的抽象表现形式。操作File类的实例,就相当于操作真实的文件。
 1) 属性:static final String separator 代表与操作系统相关的路径分隔符。
 2) 构造方法:File(String path)
 3) 常用方法:
    boolean exists();
    String getName();
    String getAbsolutePath();
    String getCanonicalPath();
    boolean isDirectory();
    boolean isFile();
   
    boolean createNewFile();
    boolean delete();
    boolean mkdir();
    boolean mkdirs();
   
    String[] list();
    File[] listFiles();

 

2. IO流类的分类: Stream流,数据通信的通道。
 1) 流向:输入流(源-->程序)、输出流(程序-->目标)
 2) 传输单位:字节流(以字节为传输单位)、字符流
 3) 功能:节点流(直接操作设备的流)、过滤流(处理流)-->对已经存在的流的包装(套接),提供更强大,更灵活,更高效的数据处理功能。
 
3. 四个基本抽象流类
 1) InputStream:字节输入流
    常用方法:
    int read() throws IOException //一次读取一个字节,返回读取到的字节数据的整数表示。如果遇到文件尾,返回-1。
    int read(byte[] buf) throws IOException //一次性读取buf.length个字节数据,读取到的数据存放在buf数组中,并返回读到的字节数。如果遇到文件尾,返回-1。
    int read(byte[] buf, int off, int len) throws IOException //
    void close() throws IOException //流操作完毕后,一定要关闭,以释放它所关联的系统资源。

    OutputStream:字节输出流
    常用方法:
    void write(int b) throws IOException //一次写出一个指定的字节。
    void write(byte[] buf) throws IOException //一次写出指定数组的字节数据。
    void write(byte[] buf, int off, int len) throws IOException
    void flush() throws IOException //刷新缓冲区,强制把缓冲区中的数据写出到目标设备。
    void close() throws IOException //流操作完毕后,一定要关闭,以释放它所关联的系统资源。

 2) Reader和Writer
    Reader:字符输入流
    常用方法:
    int read() throws IOException //一次读取一个字符,返回读取到的字符数据的整数表示。如果遇到文件尾,返回-1。
    int read(char[] cbuf) throws IOException
    int read(char[] cbuf, int off, int len) throws IOException
    void close() throws IOException
   
    Writer:字符输出流
    常用方法:
    void write(int b) throws IOException //一次写出一个指定的字符。
    void write(char[] cbuf) throws IOException //一次写出指定数组的字符数据。
    void write(char[] cbuf, int off, int len) throws IOException
    void write(String str) throws IOException
    void flush() throws IOException //刷新缓冲区,强制把缓冲区中的数据写出到目标设备。
    void close() throws IOException //流操作完毕后,一定要关闭,以释放它所关联的系统资源。

 

4. 文件流:专门用来操作目标设备上的文件。
  1) FileInputStream: 文件字节输入流
     构造方法:FileInputStream(String name) 和 FileInputStream(File file)
     常用方法:跟父类一样。
     FileOutputStream:文件字节输出流
     构造方法:覆盖模式                         append为true时,追加模式
               FileOutputStream(String name) 和 FileOutputStream(String name, boolean append)
               FileOutputStream(File file) 和 FileOutputStream(File file, boolean append)
     常用方法:跟父类一样。
     这两个流类适用于读写二进制文件,如:图像,音频,视频等文件。
    
  2) FileReader:文件字符输入流
     构造方法:FileReader(String name) 和 FileWriter(File file)
     常用方法:跟父类一样。
     FileWriter:文件字符输出流
     构造方法:覆盖模式                  append为true时,追加模式
               FileWriter(String name) 和 FileWriter(String name, boolean append)
               FileWriter(File file) 和 FileWriter(File file, boolean append)
     常用方法:跟父类一样。
     这两个流类适用于读写文本文件。

 

5. 缓冲流(属于处理流):针对四个抽象流类提供对应的缓冲流。缓冲流可以大大提高IO效率。
  1) BufferedInputStream: 对InputStream系列进行包装的缓冲流。
     构造方法:BufferedInputStream(InputStream in)
     常用方法:跟InputStream一样。
     BufferedOutputStream:对OutputStream系列进行包装的缓冲流。
     构造方法:BufferedOutputStream(OutputStream out)
     常用方法:跟OutputStream一样。
    
  2) BufferedReader: 对Reader系列进行包装的缓冲流。
     构造方法:BufferedReader(Reader in)
     常用方法:在Reader基础上新增了pubic String readLine() throws IOException
     BufferedWriter:对Writer系列进行包装的缓冲流。
     构造方法:BufferedWriter(Writer out)
     常用方法:在Writer基础上新增了public void newLine() throws IOException
    
6. 流类的常见使用方式:
    BufferedInputStream bps = null;
  BufferedOutputStream bos = null;
  byte[] buff = new byte[8192];
  try {
   bps = new BufferedInputStream(new FileInputStream(src));
   bos = new BufferedOutputStream(new FileOutputStream(desc));
   for(int count = -1;(count = bps.read(buff)) != -1;){
    bos.write(buff, 0, count);
   }
   bos.flush();
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }finally{
   if(null!=bps){
    try {    bps.close();  } catch (IOException e) {    e.printStackTrace(); }
   }
   if(null!=bos){
    try {    bos.close();  } catch (IOException e) {    e.printStackTrace(); }
   }
  }
   
7. 转换流:仅适用于,别人提供的是字节流,但明确知道传输只是字符。那么就可以转成字符操作方式。
   1) InputStreamReader: 字节输入流转换成字符输入流
      构造器:InputStreamReader(InputStream in);
   2) OutputStreamWriter: 字符输出流转换成字节输出流
      构造器:OutputStreamWriter(OutputStream out);

 

8. 数据流

 

9. 打印流:
   PrintStream:与其他输出流不同,PrintStream永远不会抛出IOException。System.out就是一个PrintStream对象
   PrintWriter
  
9. 对象流:
   ObjectOutputStream: 对象保存到目标设备。序列化。
   ObjectInputStream: 从目标设备中读取出对象。反序列化。
   可序列的对象对应的类必须实现java.io.Serializable接口,还要有一个序列版本ID:static final long serialVersionUID
   static属性和transient属性不会被序列化。
  
10. RandomAccessFile:随机访问文件类。可以随机从指定位置开始读写文件。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本微信小程序医院挂号预约系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此微信小程序医院挂号预约系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。微信小程序医院挂号预约系统有管理员,用户两个角色。管理员功能有个人中心,用户管理,医生信息管理,医院信息管理,科室信息管理,预约信息管理,预约取消管理,留言板,系统管理。微信小程序用户可以注册登录,查看医院信息,查看医生信息,查看公告资讯,在科室信息里面进行预约,也可以取消预约。微信小程序医院挂号预约系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值