一、操作基本数据类型:DataInputStream DataOutputStream
/** *数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。 *然后,应用程序可以使用数据输入流将数据读入。 */ public class DataOutputStream extends FilterOutputStream implements DataOutput { //创建一个新的数据输出流,将数据写入指定基础输出流 public DataOutputStream(OutputStream out){} //将字符串按字符顺序写入基础输出流。通过 writeChar 方法将每个字符写入数据输出流 public final void writeChars(String s) throws IOException{} writeByte(int v) writeChar(int v) writeDouble(double v).... }
/** *数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型 *然后,应用程序可以使用数据输入流将数据读入。 */ public class DataInputStream extends FilterInputStream implements DataInput { //使用指定的底层 InputStream 创建一个 DataInputStream public DataInputStream(InputStream in){} readByte() readChar() readDouble().... }
示例:
import java.io.*; public class DataStreamDemo { public static void main(String[] args) throws IOException { DataOutputStream dos = new DataOutputStream(new FileOutputStream("e:/mm.txt")); DataInputStream dis = new DataInputStream(new FileInputStream("e:/mm.txt")); writeData(dos); readData(dis); } public static void writeData(DataOutputStream dos) throws IOException { dos.writeInt(25); dos.writeBoolean(true); dos.writeDouble(5); dos.writeByte(2); dos.close(); } public static void readData(DataInputStream dis) throws IOException { int a = dis.readInt(); boolean b = dis.readBoolean(); double c = dis.readDouble(); byte d = dis.readByte(); System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); dis.close(); } }
二、操作字节数组:ByteArrayInputStream ByteArrayOutputStream
/** *此类实现了一个输出流,其中的数据被写入一个 byte 数组。 *缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。 *关闭 ByteArrayOutputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。 */ public class ByteArrayOutputStream extends OutputStream { //创建一个新的 byte 数组输出流。缓冲区的容量最初是 32 字节,如有必要可增加其大小 public ByteArrayOutputStream(){} //创建一个新的 byte 数组输出流,它具有指定大小的缓冲区容量(以字节为单位)。 public ByteArrayOutputStream(int size){} //将此 byte 数组输出流的 count 字段重置为零,从而丢弃输出流中目前已累积的所有输出。通过重新使用已分配的缓冲区空间,可以再次使用该输出流。 public void reset(){} //返回缓冲区的有效字节的数目。 public int size(){} //创建一个新分配的 byte 数组。其大小是此输出流的当前大小,并且缓冲区的有效内容已复制到该数组中 public byte[] toByteArray(){} //使用平台默认的字符集,通过解码字节将缓冲区内容转换为字符串 public String toString(){} //使用指定的 charsetName,通过解码字节将缓冲区内容转换为字符串 public String toString(String charsetName) throws UnsupportedEncodingException{} public void write(int b){} public void write(byte[] b, int off, int len){} //将此 byte 数组输出流的全部内容写入到指定的输出流参数中 public void writeTo(OutputStream out) throws IOException{} }
/** *ByteArrayInputStream 包含一个内部缓冲区,该缓冲区包含从流中读取的字节。 *内部计数器跟踪 read 方法要提供的下一个字节 *关闭 ByteArrayInputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException */ public class ByteArrayInputStream extends InputStream { //创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组 public ByteArrayInputStream(byte[] buf){} //创建 ByteArrayInputStream,使用 buf 作为其缓冲区数组 public ByteArrayInputStream(byte[] buf, int offset, int length){} //将缓冲区的位置重置为标记位置 public void reset(){} }
示例:
import java.io.*; public class ByteArrayStreamDemo { public static void main(String[] args) { //数据源 ByteArrayInputStream bis = new ByteArrayInputStream("dsljfa".getBytes()); //数据目的 ByteArrayOutputStream bos = new ByteArrayOutputStream(); int num = 0; while((num=bis.read())!=-1) { bos.write(num); } String str = bos.toString(); System.out.println(str); } }
三、操作字符数组:CharArrayReader CharArrayWriter 底层用的是char[]
操作字符串:StringReader StringWriter 底层用的是StringBuffer
操作和ByteArrayInputStream ByteArrayOutputStream类似
四、IO操作一定要先明确数据源和目的,然后再选择具体的流对象来进行操作
相关推荐
本篇文章将深入探讨`java.io`包中一些常用的类,并通过实例来展示它们的使用方法。 1. **InputStream 和 OutputStream**: - `InputStream` 是所有字节输入流的超类,代表一个字节序列的输入源。常见的子类有 `...
### io包中常用类的作用、重要方法及类之间的继承关系 #### 一、概述 Java的`io`包提供了大量的类来处理输入/输出操作,包括文件读写、网络通信等场景。这些类的设计遵循了良好的面向对象设计原则,通过抽象类和...
Java.io 包中的 File 类 Java.io 包中的 File 类是 Java 语言中代表磁盘文件本身的对象,定义了一些与平台无关的方法来操纵文件。通过调用 File 类提供的各种方法,能够完成创建、删除文件,重命名文件,判断文件的...
本Java精华内容深入Java API、嵌套类和内部类、与时间有关的类Date,DateFormat,Calendar、文件与流、Java变量类型间的相互转换、Java与Web、用连接池提高Servlet访问数据库的效率、Java扩展、应用服务器的集群策略及...
它们是所有字节流类的基类,其他具体子类都直接或间接地继承自这两个类。 - **InputStream 类** - `ByteArrayInputStream`: 提供了一个从内存中的字节数组读取数据的能力。 - `FileInputStream`: 用于从文件系统...
2.不属于java.io包中的接口的一项是(C) a)DataInput b) DataOutput c) DataInputStream d) ObjectInput 3. ByteArrayOutputStream将下列哪一项作为输出流 C a) 字符b)字节c)字节数组D)对象 4. 下列流中哪一个...
- **数据类型与变量**:了解基本数据类型(如int、float、char)与引用数据类型(如类、接口、数组),以及它们的区别。 - **运算符**:理解算术、比较、逻辑、位、赋值等不同类型的运算符。 - **流程控制**:...
本文讨论了Java输入输出流的基本概念、字节流、字符流、缓冲流、文件操作方法等,并对Java.io包中的相关类进行了分析和探讨。在网站开发中,输入输出流的应用非常广泛,本文通过实例形式对Java.io包中的File、...
除了 File 类,Java IO 包中还有许多其他类,例如: * `InputStream`:抽象类,表示输入流 * `OutputStream`:抽象类,表示输出流 * `Reader`:抽象类,表示字符输入流 * `Writer`:抽象类,表示字符输出流 * `...
IO包中的类和接口种类繁多。根据功能和用途大致可以分为以下几类: 1. **接口** - `Externalizable`: 允许对象自定义序列化和反序列化行为。 - `FileFilter`: 用于过滤文件。 - `FilenameFilter`: 用于过滤...
Java的IO包中包含大量类和接口,其中流式部分是IO的主要内容,非流式部分包括File类、RandomAccessFile类等辅助类。 2. 非堵塞型IO(NewIO):主要包含在java.nio包中,采用了Observer模式来监测IO端口,有数据时...
包是由.class文件组成的一个集合,.class文件时可以用Java...包是一种松散的概念,一般情况下,功能相同或者相关的类组织在一个包中,例如java.io包中的类都与输入、输出有关,java.applet包中的类都与applet程序有关。
File类是Java.io包中的一个重要类,它提供了与文件和目录操作相关的功能。通过File对象,我们可以创建、删除、重命名文件,检查文件属性,以及获取文件路径等信息。 接下来,我们来看看IO流的层次结构。在Java中,...
在Java中,所有的流都实现了java.io包中的InputStream、OutputStream、Reader、Writer这些抽象类,它们分别是字节流和字符流的基类。 二、流的分类 Java的IO流主要分为两大类:字节流和字符流。 1. 字节流 字节...
首先,Java中的文件IO操作主要依赖于`java.io`包中的类,如`File`、`FileReader`、`FileWriter`、`BufferedReader`和`BufferedWriter`等。在描述中提到的`File`类是Java中的核心类,用于表示文件和目录路径名的抽象...
在Java IO包中,还有许多其他的类,如DataInputStream和DataOutputStream,它们用于读写基本数据类型;FileReader和FileWriter用于文件的字符读写;ObjectInputStream和ObjectOutputStream则支持序列化和反序列化...
IO流系统由多个类和接口组成,它们位于java.io包中,为开发者提供了读写数据的丰富功能。在Java中,IO流分为字节流和字符流两大类,每类又分为输入流和输出流。 字节流是最基本的IO流类型,处理的数据单位是字节,...
项目中需要 org.apache.commons.io.IOUtils的可以下载此包,fileupload组件依赖的commons-io组件
在Java中,IO主要依赖于一系列类和接口,它们位于java.io包中。IO流是Java IO的核心概念,分为字节流和字符流两大类,每类又分为输入流和输出流。字节流处理8位的字节数据,适用于处理任何类型的数据,如图像或音频...