精华内容
下载资源
问答
  • io流的分类
    2020-04-07 00:52:54

    描述下JavaSE中的常用IO流、对IO流操作过程中的注意事项、说明常用IO流的使用场景

    个人理解:
    几乎所有的程序都离不开信息的输入和输出,比如从键盘读取数据,从文件中获取或者向文件中存入数据,在显示器上显示数据。这些情况下都会涉及有关输入/输出的处理。
    在Java中,把这些不同类型的输入、输出源抽象为流(Stream),其中输入或输出的数据称为数据流(Data Stream),用统一的接口来表示。而数据流是指一组有顺序的、有起点和终点的字节集合.
    IO流就是用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中.IO流按不同规则可以分为以下几种情况:
    1.IO流按照流的方向可以分为2类,分别为:
    输入流 :将外部的某些数据读取到内存中来的流, 比如读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中。InputStream Reader
    输出流 :将程序内存中的数据写出到数据目的地的流, 比如把程序(内存)中的内容输出到磁盘、光盘等存储设备中。 OutpuStream Writer
    2.按照处理的最小单位也可以分为2类,分别为:
    字节流:每次读取(写出)一个字节,当传输的资源文件有中文时,就会出现乱码。
    InpuStream OutputSteam
    字符流:每次读取(写出)两个字节,有中文时,使用该流就可以正确传输显示中文。
    Reader Writer
    字符流只能处理文本数据,在处理文本数据上比较方便。字符流本质上也是字节流,是一种带封装的字节流,是一种具有将字节数据转换为字符数据功能的流。
    字节流所有的数据都能处理,但是处理文本数据不如字符流方便。字节流的功能更加强大。
    3.根据处理的数据源不同分类,也可以分为2类,分别为:
    节点流:直接和数据源相连, 从或向一个特定的地方(节点)读写数据的流。FileInputStream、FileOutputStream、FileReader、FileWriter
    处理流:也叫包装流,是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader。处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。BufferedInputStream、BufferedOutputStream,BufferedReader、BufferedWriter

    使用IO流的注意事项:
    许多IO操作都可能会抛出IOException异常,比如read、write、close操作。IO流使用完应按顺序及时关闭不使用的流,不然可能造成资源流失,导致内存溢出. 在使用IO流时,首先自己要知道是选择输入流还是输出流。这就要根据自己的情况决定,如果想从程序写东西到别的地方,那么就选择输入流,反之就选输出流;然后考虑你传输数据时,是每次传一个字节还是两个字节,每次传输一个字节就选字节流,如果存在中文,那肯定就要选字符流了。通过前面两步就可以选出一个合适的节点流了,比如字节输入流 InputStream,如果要在此基础上增强功能,那么就在处理流中选择一个合适的即可。
    在工作中的运用场景:
    在使用shiro框架时,官方提供的shiro-ehcache技术中,在注入EhCacheManager对象读取xml时使用到了InputStream流.
    在使用分布式文件存储服务FastDFS上传下载文件时,使用到了IO流.

    更多相关内容
  • Java之IO流分类及其基本方法

    千次阅读 2021-11-16 22:01:29
    IO流分类可以分为以下几类: 1、文件字节流:FileInputStream、FileOutputStream 2、文件字符流:FileReader、FileWiter 3、转换流:InputStreamReader、OutputStreamWriter 4、缓冲流:BufferedReader、...

    一、IO流及其分类

    IO流分类可以分为以下几类:
    1、文件字节流:FileInputStream、FileOutputStream
    2、文件字符流:FileReader、FileWiter
    3、转换流:InputStreamReader、OutputStreamWriter
    4、缓冲流:BufferedReader、BufferedWriter
    5、二进制流:DataInputStream、DataOutputStream
    6、对象流:ObjectInputStream、ObjectOutputStream
    下面我将介绍其基本方法。

    二、FileInputStream方法:

    1、int available() :返回一个剩余的字节数的估计,可以从这个输入流读取(或跳过),而不阻塞该输入流的方法的下一次调用。
    2、void close() :关闭此文件输入流并释放与流关联的任何系统资源。
    3、protected void finalize() :确保该文件输入流的 close方法被调用时,没有对它的引用。
    4、FileChannel getChannel() :返回与此文件输入流有关的独特的 FileChannel对象。
    5、FileDescriptor getFD() :返回表示实际的文件在文件系统中的 FileInputStream使用的连接的 FileDescriptor对象。
    6、int read() :从这个输入流读取一个字节的数据。
    7、int read(byte[] b) :读到 b.length从输入流到字节数组数据字节。
    8、int read(byte[] b, int off, int len) :读到 len从输入流到字节数组数据字节。
    9、long skip(long n) :跳过并丢弃 n字节输入流中的数据。

    三、FileOutputStream方法

    1、void flush() :刷新数据输出流。
    2、int size() :返回柜台 written电流值,这个数据写入输出流的字节数为止。
    3、void write(byte[] b, int off, int len) :写 len字节指定字节数组中的起始偏移量 off当前输出流。
    4、void write(int b) :将指定的字节(论证 b的低八位)的底层输出流。
    5、void writeBoolean(boolean v) :写一个 boolean当前输出流作为一个字节的值。
    6、void writeByte(int v) :写了 byte当前输出流作为一个字节的值。
    7、void writeBytes(String s) :将字符串写入到基础的输出流作为字节序列。
    8、void writeChar(int v) :写一个 char当前输出流作为一个双字节值,高字节优先。
    9、void writeChars(String s) :将一个字符串写入底层输出流,作为一个字符序列。
    10、void writeDouble(double v) :将双参数到一个 long使用 doubleToLongBits方法在类 Double,然后写道, long值基本的输出流的字节的数量,高字节优先。
    11、void writeFloat(float v) :将浮点型参数的 int使用 floatToIntBits方法在类 Float,然后写道, int值基本为4字节输出流量,高字节优先。
    12、void writeInt(int v) :写一个 int当前输出流为四个字节,高字节优先。
    13、void writeLong(long v) :写一个 long当前输出流为八个字节,高字节优先。
    14、void writeShort(int v) :写一个 short当前输出流的两个字节,高字节优先。
    15、void writeUTF(String str) :一个字符串写入到输出流的潜在使用在一个机器无关的方式 modified UTF-8编码。

    四、FileReader方法

    1、FileReader(File file) :创建一个新的 FileReader,给予 File读。
    2、FileReader(FileDescriptor fd) :创建一个新的 FileReader,给予 FileDescriptor读。
    3、FileReader(String fileName) :创建一个新的 FileReader,给定要读取的文件的名称。

    五、FileWiter方法

    1、FileWriter(File file) :构建了一个文件对象FileWriter对象。
    2、FileWriter(File file, boolean append) :构建了一个文件对象FileWriter对象。
    3、FileWriter(FileDescriptor fd) :构建了一个文件描述符关联的FileWriter对象。
    4、FileWriter(String fileName) :构造给定文件名的FileWriter对象。
    5、FileWriter(String fileName, boolean append) :构造FileWriter对象给出一个文件名与一个布尔值,指示是否附加写入的数据。

    六、InputStreamReader方法

    1、int available() :返回一个可以从这个输入流读取(或跳过)的字节数的估计值,而不阻塞该输入流的下一个方法的调用。
    2、void close() :关闭此输入流并释放与流关联的任何系统资源。
    3、void mark(int readlimit) :标记此输入流中的当前位置。
    4、boolean markSupported() :如果输入流的支持 mark和 reset方法。
    5、abstract int read() :从输入流读取下一个数据字节。
    6、int read(byte[] b) :读取一定数量的字节从输入流并存入缓冲区阵列 b。
    7、int read(byte[] b, int off, int len) :读到 len字节从输入流读入字节数组数据。
    8、void reset() :重新定位该流在时间的 mark方法的位置上呼吁这个输入流。
    9、long skip(long n) :跳过并丢弃 n字节从输入流中的数据。

    七、OutputStreamWriter方法

    1、void close() :关闭此输出流并释放与此流关联的任何系统资源。
    2、void flush():刷新输出流,使缓存数据被写出来。
    3、void write(byte[] b):写 b.length字节从指定的字节数组的输出流。
    4、void write(byte[] b, int off, int len) :写 len字节指定字节数组中的偏移 off开始到输出流。
    5、abstract void write(int b) :将指定的字节写入该输出流中。

    八、BufferedReader方法

    1、void close() :关闭流并释放与它相关联的任何系统资源。
    2、Stream lines() :返回一个 Stream,其中的元素是线从这 BufferedReader读。
    3、void mark(int readAheadLimit) :标记流中的当前位置。
    4、boolean markSupported() :告诉这是否流支持的mark()操作它。
    5、int read() :读取单个字符。
    6、int read(char[] cbuf, int off, int len) :将字符读入一个数组的一部分。
    7、String readLine() :读一行文本。
    8、boolean ready() :告诉是否该流已准备好阅读。
    9、void reset() :将流到最近的标记。
    10、long skip(long n) :跳过的字符。

    九、BufferedWriter方法

    1、void close() :关闭流,冲洗它。
    2、void flush() :冲流。
    3、void newLine() :写行分隔符。
    4、void write(char[] cbuf, int off, int len) :写入一个字符数组的一部分。
    5、void write(int c) :写一个字符。
    6、void write(String s, int off, int len) :写入字符串的一部分。

    十、DataInputStream方法

    1、int read(byte[] b) :读取一定数量的字节从包含输入流并存入缓冲区阵列 b。
    2、int read(byte[] b, int off, int len) :读到 len从包含输入流读入字节数组数据字节。
    3、boolean readBoolean() :DataInput的 readBoolean方法一般相同。
    4、byte readByte() : DataInput的 readByte方法一般相同。
    5、char readChar() : DataInput的 readChar方法一般相同。
    6、double readDouble() : DataInput的 readDouble方法一般相同。
    7、float readFloat() : DataInput的 readFloat方法一般相同。
    8、void readFully(byte[] b) :DataInput的 readFully方法一般相同。
    9、void readFully(byte[] b, int off, int len) :DataInput的 readFully方法一般相同。
    10、int readInt() :DataInput的 readInt方法一般相同。
    11、String readLine() :通过BufferedReader.readLine()方法。
    12、long readLong() :DataInput的 readLong方法一般相同。
    13、short readShort() :DataInput的 readShort方法一般相同。
    14、int readUnsignedByte() :DataInput的 readUnsignedByte方法一般相同。
    15、int readUnsignedShort() :DataInput的 readUnsignedShort方法一般相同。
    16、String readUTF() :DataInput的 readUTF方法一般相同。
    17、static String readUTF(DataInput in) :从流 in一个Unicode字符串的编码格式在 modified UTF-8表示读取;这个字符串是作为一个 String返回。
    18、int skipBytes(int n) :DataInput的 skipBytes方法一般相同。

    十一、DataOutputStream方法

    1、void flush() :刷新数据输出流。
    2、int size() :返回控制台 written电流值,这个数据写入输出流的字节数为止。
    3、void write(byte[] b, int off, int len) :写 len字节指定字节数组中的起始偏移量 off当前输出流。
    4、void write(int b) :将指定的字节( b的低八位)的底层输出流。
    5、void writeBoolean(boolean v) :写一个 boolean当前输出流作为一个字节的值。
    6、void writeByte(int v) :写了 byte当前输出流作为一个字节的值。
    7、void writeBytes(String s) :将字符串写入到基础的输出流作为字节序列。
    8、void writeChar(int v) :写一个 char当前输出流作为一个双字节值,高字节优先。
    9、void writeChars(String s) :将一个字符串写入底层输出流,作为一个字符序列。
    10、void writeDouble(double v) :将双参数到一个 long使用 doubleToLongBits方法在类 Double, long值基本的输出流的字节的数量,高字节优先。
    11、void writeFloat(float v) :将浮点型参数的 int使用 floatToIntBits方法在类 Float,然后写道, int值基本为4字节输出流量,高字节优先。
    12、void writeInt(int v) :写一个 int当前输出流为四个字节,高字节优先。
    13、void writeLong(long v) :写一个 long当前输出流为八个字节,高字节优先。
    14、void writeShort(int v) :写一个 short当前输出流的两个字节,高字节优先。
    15、void writeUTF(String str) :一个字符串写入到输出流的潜在使用在一个机器无关的方式 modified UTF-8编码。

    十二、ObjectInputStream方法

    1、int available() :返回可以不阻塞读取的字节数。
    2、void close() :关闭输入流。
    3、void defaultReadObject() :从该流中读取当前类的非静态和非瞬态字段。
    4、protected boolean enableResolveObject(boolean enable) :使流能够允许从流中读取的对象被替换。
    5、int read() :读取一个字节的数据。
    6、int read(byte[] buf, int off, int len) :读入一个字节数组。
    7、boolean readBoolean() :在布尔值中读取。
    8、byte readByte() :读取一个8位字节。
    9、char readChar() :读取一个16位字符。
    10、protected ObjectStreamClass readClassDescriptor() :从序列化流中读取类描述符。
    11、double readDouble() :读一个64位的双。
    12、ObjectInputStream.GetField readFields() :从流中读取持久字段,并使它们可用名称命名。
    13、float readFloat() :读取一个32位浮点。
    14、void readFully(byte[] buf) :读取字节,阻塞,直到所有的字节都读。
    15、void readFully(byte[] buf, int off, int len) :读取字节,阻塞,直到所有的字节都读。
    16、int readInt() :读取一个32位int。
    17、long readLong() :读一个64位长的。
    18、Object readObject() :从对象输入流对象。
    19、protected Object readObjectOverride() :这种方法被称为对象,通过构建保护对象使用无参数构造函数受信任的子类。
    20、short readShort() :读一个16位的短字符。
    21、protected void readStreamHeader() :readstreamheader方法是提供让子类来读取和验证自己的流头。
    22、Object readUnshared() :读取对象输入流“独享”的对象。
    23、int readUnsignedByte() :读取一个无符号的8位字节。
    24、int readUnsignedShort() :读取一个无符号的16位短字符。
    25、String readUTF() :读 modified UTF-8格式字符串。
    26、void registerValidation(ObjectInputValidation obj, int prio) :在返回图形之前注册一个要验证的对象。
    27、protected 类<?> resolveClass(ObjectStreamClass desc) :加载指定的流类描述的本地类等价。
    28、protected Object resolveObject(Object obj) :这种方法将允许受信任的子类对象输入流用另一个来代替在反序列化期间。
    29、protected 类<?> resolveProxyClass(String[] interfaces) :返回实现代理类描述符中命名的接口的代理类;
    30、int skipBytes(int len) :跳过的字节。

    十三、ObjectOutputStream方法

    1、protected void annotateClass(类<?> cl) :子类可以实现这种方法,以允许将类数据存储在流中。
    2、protected void annotateProxyClass(类<?> cl) :子类可以实现这种方法来存储流中的自定义数据以及动态代理类的描述符。
    3、void close() :关闭流。
    4、void defaultWriteObject() :将当前类的非静态和非瞬态字段写入该流。
    5、protected void drain() :在ObjectOutputStream的任何缓冲的数据流失。
    6、protected boolean enableReplaceObject(boolean enable) :使流能够替换流中的对象。
    7、void flush() :冲流。
    8、ObjectOutputStream.PutField putFields() :检索用于将要写入流的缓冲持久字段的对象。
    9、protected Object replaceObject(Object obj) :这种方法将允许受信任的子类对象来代替一个物体对另一个序列化期间。
    10、void reset() :重置将忽略已写入流的任何对象的状态。
    11、void useProtocolVersion(int version) :在写入流时指定要使用的流协议版本。
    12、void write(byte[] buf) :写入一个字节数组。
    13、void write(byte[] buf, int off, int len) :写入字节数组的字节数。
    14、void write(int val) :写一个字节。
    15、void writeBoolean(boolean val) :写一个布尔值。
    16、void writeByte(int val) :写入一个8位字节。
    17、void writeBytes(String str) :写入字符串作为一个字节序列。
    18、void writeChar(int val) :写入一个16位字符。
    19、void writeChars(String str) :写一个字符串作为字符序列。
    20、protected void writeClassDescriptor(ObjectStreamClass desc) :写入指定的类描述的对象。
    21、void writeDouble(double val) :写一个64位双精度。
    22、void writeFields() :将缓冲区写到流中。
    23、void writeFloat(float val) :写一个32位浮点数。
    24、void writeInt(int val) :写一个32位int。
    25、void writeLong(long val) :写一个64位长整型。
    26、void writeObject(Object obj) :写入指定的对象的对象。
    27、protected void writeObjectOverride(Object obj) :用子类重写默认的writeObject方法。
    28、void writeShort(int val) :写一个16位的短整型。
    29、protected void writeStreamHeader() :writestreamheader方法提供子类可以附加或在自己的头的流。
    30、void writeUnshared(Object obj) :写一个“独享”的对象的对象。
    31、void writeUTF(String str) :原始数据写在 modified UTF-8格式字符串。

    展开全文
  • Java中的IO流分类

    2022-03-04 12:24:03
    Java IO 共涉及 40 多个类,这些类看上去很杂乱,但实际上很有规则,而且彼此之间存在非常紧密的联系, Java IO 的 40 多个类都是从如下 4 个抽象类基类中派生出来的。 InputStream/Reader: 所有的输入的基类...
    • 按照流的流向分,可以分为输入流输出流
    • 按照操作单元划分,可以划分为字节流字符流
    • 按照流的角色划分为节点流处理流

    Java IO 流共涉及 40 多个类,这些类看上去很杂乱,但实际上很有规则,而且彼此之间存在非常紧密的联系, Java IO 流的 40 多个类都是从如下 4 个抽象类基类中派生出来的。

    • InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。
    • OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。

    按操作方式分类结构图:

    按操作对象分类结构图: 

    既然有了字节流,为什么还要有字符流?

    字符流是由 Java 虚拟机将字节转换得到的,问题就出在这个过程还算是非常耗时,并且,如果我们不知道编码类型就很容易出现乱码问题。所以, I/O 流就干脆提供了一个直接操作字符的接口,方便我们平时对字符进行流操作。如果音频文件、图片等媒体文件用字节流比较好,如果涉及到字符的话使用字符流比较好。

    展开全文
  • java IO流分类

    千次阅读 2019-01-20 14:57:20
    一、 分类 按数据的方向不同:输入,输出。 按处理数据单位不同:字节(InputStream,OutputStream),字符(Reader,Writer)。 (1) 字节:数据中最小的数据单元是字节。 (2) 字符:...

    #java 流类图结构:
    这里写图片描述
    ##一、 流的分类

    1. 按数据流的方向不同:输入流,输出流。

    2. 按处理数据单位不同:字节流(InputStream,OutputStream),字符流(Reader,Writer)。
      (1) 字节流:数据流中最小的数据单元是字节。
      (2) 字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。

    3. 按功能不同:节点流,处理流。
      (1)程序用于直接操作目标设备所对应的类叫节点流。
      (2)程序通过一个间接流类去调用节点流类,以达到更加灵活方便地读写各种类型的数据,这个间接流类就是处理流。
      ##二、节点流
      ###1. 节点流的类型
      这里写图片描述
      (1)File 文件流。对文件进行读、写操作 :FileReader、FileWriter、FileInputStream、FileOutputStream。
      (2)Memory
      [1]从/向内存数组读写数据: CharArrayReader与 CharArrayWriter、 ByteArrayInputStream与ByteArrayOutputStream。
      [2]从/向内存字符串读写数据 StringReader、StringWriter、StringBufferInputStream。
      (3)Pipe管道流。 实现管道的输入和输出(进程间通信): PipedReader与PipedWriter、PipedInputStream与PipedOutputStream。
      ####字节文件流:

      package com.senior.io;

      import java.io.File;
      import java.io.FileInputStream;
      import java.io.FileNotFoundException;
      import java.io.FileOutputStream;
      import java.io.IOException;
      import java.io.InputStream;
      import java.io.OutputStream;
      import java.util.Arrays;

      public class FileInputStream_FileOutputStream {
      public static void main(String[] args) {
      InputStream input = null;
      OutputStream output = null;
      try {
      File file = new File(“file/file.txt”);
      input = new FileInputStream(file); //没有该文件会FileNotFoundException抛异常
      //FileOutputStream(String name,boolean append) append:是否可以追加文件
      output = new FileOutputStream(“file/file1.txt”,true); //没有该文件会自动创建
      byte[] b = new byte[3];
      int count = -1;
      while((count = input.read(b)) != -1) {
      System.out.println(Arrays.toString(b));
      output.write(b, 0, count);
      }
      output.flush(); //强制刷新暂存区,将所有字节强制输出
      } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      } finally {
      if (output !=null){
      try {
      output.close();
      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      }
      if (input != null) {
      try {
      input.close();
      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      }
      }
      }
      }
      ####字符文件流:

      package com.senior.io;

      import java.io.File;
      import java.io.FileNotFoundException;
      import java.io.FileReader;
      import java.io.FileWriter;
      import java.io.IOException;
      import java.io.Reader;
      import java.io.Writer;
      import java.util.Arrays;

      public class Reader_Writer {
      public static void main(String[] args) {
      Reader reader = null;
      Writer writer = null;
      try {
      File file = new File(“file/file.txt”);
      reader = new FileReader(file);
      writer = new FileWriter(“file/file1.txt”);

      char[] ch = new char[3];
      int count = -1;
      while ((count = reader.read(ch)) != -1) {
      	System.out.println(Arrays.toString(ch)+" " +count);
      	writer.write(ch, 0, count);
      }
      writer.flush();
      } catch (FileNotFoundException e) {
      	e.printStackTrace();
      } catch (IOException e) {
      	e.printStackTrace();
      } finally {
      	if (reader != null) {
      		try {
      			reader.close();
      		} catch (IOException e) {
      			e.printStackTrace();
      		}
      	}
      	if (writer != null) {
      		try {
      			writer.close();
      		} catch (IOException e) {
      			e.printStackTrace();
      			}
      		}
      	}	
      }
      

      }

    ###2. 节点流执行的图示
    这里写图片描述
    三、处理流

    1. 处理流的类型
      这里写图片描述
      -(1)Buffering缓冲流:在读入或写出时,对数据进行缓存,以减少I/O的次数:BufferedReader与BufferedWriter、BufferedInputStream与BufferedOutputStream。
    • (2)Filtering 滤流:在数据进行读或写时进行过滤:FilterReader与FilterWriter、FilterInputStream与FilterOutputStream。
    • (3)Converting between Bytes and Characters 转换流:按照一定的编码/解码标准将字节流转换为字符流,或进行反向转换(Stream到Reader):InputStreamReader、OutputStreamWriter。
    • (4)Object Serialization 对象流 :ObjectInputStream、ObjectOutputStream。
    • (5)DataConversion数据流: 按基本数据类型读、写(处理的数据是Java的基本类型(如布尔型,字节,整数和浮点数)):DataInputStream、DataOutputStream 。
    • (6)Counting计数流: 在读入数据时对行记数 :LineNumberReader、LineNumberInputStream。
    • (7)Peeking Ahead预读流: 通过缓存机制,进行预读 :PushbackReader、PushbackInputStream。
    • (8)Printing打印流: 包含方便的打印方法 :PrintWriter、PrintStream。
    1. 处理流执行的图示
      这里写图片描述
    2. 缓冲流
      【1】对I/O进行缓冲是一种常见的性能优化,缓冲流为I/O流增加了内存缓冲区,增加缓冲区的两个目的:
      (1)允许Java的I/O一次不只操作一个字符,这样提高䇖整个系统的性能;
      (2)由于有缓冲区,使得在流上执行skip、mark和reset方法都成为可能。

    【2】缓冲流:它是要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,
    提高了读写的效率,同时增加了一些新的方法。例如:BufferedReader中的readLine方法,BufferedWriter中的newLine方法
    4. 转换流
    转换流有两种:
    (1)InputStreamReader:将字节流转换为字符流;
    (2)OutputStreamWriter:将字符流转换为字节流。
    5. 数据流
    数据流:DataInputStream和DataOutputStream
    (1)DataInputStream和DataOutputStream是面向字节的,因此要使用InputStream和OutputStream。
    (2)DataInputStream和DataOutputStream分别继承InputStream和OutputStream,
    它们属于处理流,需要分别“套接”在InputStream和OutputStream类型的节点流上。
    (3)DataInputStream和DataOutputStream提供了可以存取与机器无关的Java原始类数据(如:int,double等)的方法。
    (4)DataInputStream和DataOutputStream的构造方法:
    DataInputStream(InputStream in)
    DataOutputStream(OutputStream out)

    展开全文
  • IO流分类: - 按流向分类:输入流、输出流 - 按操作对象分类:字节流、字符流 - 按功能分类:节点流、处理流 IO流的设计模式为装饰设计模式; 节点流为最“原生态”的流,实现了流的基本功能,需待操作的数据...
  • IO流分类

    2020-10-03 17:31:01
    15.1.2 IO流四大家族: 四大家族的首领: java.io.InputStream 字节输入流 java.io.OutputStream 字节输出流 java.io.Reader 字符输入流 java.io.Writer 字符输出流 所有的流都实现了:java.io.Closeab
  • IO流分类

    2022-07-17 19:03:09
    节点可以从向一个特定的IO设备(如磁盘、网络)读/写数据的。字节和字符的用法几乎完全一样,区别在于字节和字符所操作的数据单元不同。字符操作的数据单元是16为的字符,由Reader和Writer作为基类。....
  • IO流分类及其应用

    千次阅读 2020-11-10 10:59:09
    IO流 可以将数据储存到文件中,也可以从文件中读取数据 分类 流向分类 输入流:FileWriter 输出流:FileReader 数据类型分类 字符 字符输入流 字符输出流 字节 字节输入流 字节输出流 输出流(FileWriter) 往文件中...
  • io流分类

    2017-05-22 21:02:06
    1、以数据的方向划分:输入与输出。 2、以数据的传输单位划分为:字节与字符; 3、以数据里的处理方式划分为:节点和处理; 二.用表格形式表示四种抽象类: 三 (1).InputStream(输入字节...
  • Java-详解IO流原理及流的分类

    千次阅读 多人点赞 2022-03-04 20:26:36
    Java IO原理 一、概述 (1)I/O是Input/Output的缩写, I/O技术是非常实用的技术,用于处理设备之间的数据传输。...(3) java.io包下提供了各种“”类和接口,用以获取不同种 这里是引用 类的数据,并通过
  • Java IO流概述和分类

    2022-07-01 08:47:27
    Java IO流概述和分类
  • 关于IO流分类

    2022-01-12 10:29:14
    IO流可分为: 1、节点流:FileInputStream、FileOutputStream、FileReader、FileWriter 2、缓冲流:BufferedInputStream、FileOutputStream、BufferedReader、BufferedWriter 3、转换流:InputStreamReader、...
  • Java:IO流概述和分类

    千次阅读 2022-04-04 17:36:43
    IO流浅显理解
  • IO流分类和使用方式

    2017-09-18 23:16:26
    在java.io包中操作文件内容的主要有两大类:字节、字符,两类都分为输入和输出操作。在字节中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符中输出主要是使用Writer类完成,输入主要...
  • IO流体系分类

    2021-08-23 20:39:16
    IO流分类: 1、 根据处理的数据类型不同可以分为:字符流和字节流。 2、根据数据的流向不同可以分为:输入流和输出流。 只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。 ...
  • 流的分类|IO流的体系结构

    千次阅读 2020-03-21 12:16:27
    文章目录一、Java IO原理二、分类 一、Java IO原理 I/O是Input/Output的缩写,I/O是非常实用的技术,用于处理设备之间的数据传输。如读/写文件,网络通信等。 Java程序中,对于数据的输入/输出操作以"...
  • JavaIO流02_IO流分类

    千次阅读 2021-11-12 22:18:02
    分类 操作数据单位不同分为:字节(8 bit) ,字符(按字符,字符等于多少字节按不同编码来) 按数据的流向不同分为: 输入,输出的角色不同分为:节点,处理/包装 抽象基类(都是抽象类) ...
  • 1、Java Io流的概念,分类,类图 1.1、Java Io流的概念 1.2、Io流分类 1.2.1、按照流的流向分,可以分为输入流和输出流 1.2.2、按照操作单元划分,可以划分为字节流和字符流 1.2.3、按照流的角色划分为节点流...
  • Java基础篇:IO流.pdf

    2020-05-19 11:03:47
    该文档主要整理了Java IO流的相关信息,主要包括IO流的按照不同维度的分类、节点流、处理流、输入输出流的处理过程、抽象基类的使用等细节内容
  • IO流分类 1,按方向分:输入流,输出流(注意,是站在程序的角度来看方向),输入流用于读文件,输出流用于写文件 2、按读取的单位分:字节流,字符流 3、按处理的方式分:节点流,处理流 比如,FileInputStream和...
  • IO流 分类体系

    2022-09-25 12:49:49
    IO流体系分类
  • java IO流的概念与分类

    千次阅读 2017-04-15 17:33:46
    java io流,概念, 分类
  • Java中的IO流

    2020-12-22 12:51:06
    IO流按照流向分类可分为输入和输出,按照文件操作处理单元分类可分为字节流和字符流。 FileInputStream 文件操作输入字节流 FileOutputStream 文件操作输出字节流 FileReader 文件操作输入字符流 FileWriter 文件...
  • public class HelloWorld { public static void main(String[] args) { System.out.println("hello world"); } }

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,485
精华内容 34,194
关键字:

io流的分类

友情链接: sdoapi_12102 (1).zip