美文网首页
Day15 IO流

Day15 IO流

作者: _简书 | 来源:发表于2016-08-06 09:04 被阅读18次

File类

  • java程序中的此类的一个对象,就对应着硬盘中的一个文件或网络中的一个资源。
  • File file1 = new File("/home");File file2 = new File("d:\io\io1");
  • File既可以表示一个文件(.doc .xls .mp3 .avi .jpg .dat),也可以表示一个文件目录!
  • File类的对象是与平台无关的。
  • File类针对于文件或文件目录,只能进行新建、删除、重命名、上层目录等等的操作。如果涉及到访问文件的内容,File是无能为力的,只能使用IO流下提供的相应的输入输出流来实现。
  • 常把File类的对象作为形参传递给相应的输入输出流的构造器中!

IO 流的结构

IO流分类

IO流的划分

  1. 按照流的流向的不同:输入流 输出流 (站位于程序的角度)
  2. 按照流中的数据单位的不同:字节流 字符流 (纯文本文件使用字符流 ,除此之外使用字节流)
  3. 按照流的角色的不同:节点流 处理流 (流直接作用于文件上是节点流(4个),除此之外都是处理流)

缓冲流(处理流的一种,可以提升文件操作的效率)

1.从硬盘中读入一个文件,要求此文件一定得存在。若不存在,报FileNotFoundException的异常
2.从程序中输出一个文件到硬盘,此文件可以不存在。若不存在,就创建一个实现输出。若存在,则将已存在的文件覆盖
3.真正开发时,就使用缓冲流来代替节点流
4.最后要关闭相应的流。先关闭输出流,再关闭输入流。将此操作放入finally
BufferedReader (readLine()) (int read(char[] c))或String readLine()
注意想着使用flush()

转换流:实现字节流与字符流之间的转换

InputStreamReader:输入时,实现字节流到字符流的转换,提高操作的效率(前提是,数据是文本文件) ===>解码:字节数组--->字符串
OutputStreamWriter:输出时,实现字符流到字节流的转换。 ===>编码: 字符串---->字节数组

标准的输入输出流

System.in: 从键盘输入数据
System.out:从显示器输出数据

打印流

(输出流) PrintStream(处理字节) PrintWriter(处理字符)
可以使用System.setOut(PrintStream p)重新设置一下输出的位置
PrintStream p = new PrintStream(new FileOutputStream("hello.txt"),true);

数据流(处理基本数据类型、String类、字节数组)

DataInputStream DataOutputStream
dos.writeInt(123456);
dis.readInt();

对象流(用来处理对象的)

对象的序列化机制:允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。当其它程序获取了这种二进制流,就可以恢复成原来的Java对象

ObjectInputStream(Object readObject();)
ObjectOutputStream (void writeObject(Object obj))
如何创建流的对象:
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("person.txt")));
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("person.txt")));

实现序列化机制的对象对应的类的要求:
①要求类要实现Serializable接口
②同样要求类的所有属性也必须实现Serializable接口
③要求给类提供一个序列版本号:private static final long serialVersionUID;
④属性声明为static 或transient的,不可以实现序列化

随机存取文件流:RandomAccessFile

1既可以充当一个输入流,又可以充当一个输出流:public RandomAccessFile(File file, String mode)
2支持从文件的开头读取、写入。若输出的文件不存在,直接创建。若存在,则是对原有文件内容的覆盖。
3 支持任意位置的“插入”。
参考:http://blog.csdn.net/cynhafa/article/details/6882061
http://blog.sina.com.cn/s/blog_6400e5c50101qrhk.html

相关文章

  • Day15 IO流

    File类 java程序中的此类的一个对象,就对应着硬盘中的一个文件或网络中的一个资源。 File file1 =...

  • java基础-day20-IO流和StringBuffer

    IO流和StringBuffer 1. IO流 1.1 IO流概述 1.2 IO流分类 1.3 文件操作输入输出字...

  • Java之IO流详解

    title: Java之IO流详解tags: Java IO流categories: Java IO流 大多数应用...

  • 15_IO流

    IO流介绍 IO流是一个流水模型:IO理解成水管,把数据理解成水流 IO流的分类:按照流的方向分为:输入流、输出流...

  • IO流

    一、IO流 1.1 IO的概述 IO流介绍 IO:输入/输出(Input/Output) 流:是一种抽象概念,是对...

  • java io 流

    java io 流 io 流总览 io 流主要提供四个接口 InputStream: 输入字节流 OutputSt...

  • Java IO流(一)

    IO(Input Output)流的概述 下面给出IO流的基本概述,这样可以对IO流有一个宏观上的基本了解。 IO...

  • IO流

    一、IO流的概述: 二、IO流的分类: 三、字节缓冲流: 四、字符缓冲流: 五、转换流(把字节流转换为字符流): ...

  • IO流

    IO流的使用 今天咱们来说一下JAVA中最常用的数据处理的流 IO 流,说到IO啊,玩DOTA的小伙伴们就有声音...

  • IO流

    大家好,我是IT修真院深圳分院java第4期学员,一枚正直善良的java程序员。今天给大家分享一下,Java简单的...

网友评论

      本文标题:Day15 IO流

      本文链接:https://www.haomeiwen.com/subject/bmahsttx.html