JAVA的输入输出流有多少种?
发布网友
发布时间:2022-04-25 13:01
我来回答
共4个回答
热心网友
时间:2022-05-07 19:54
有文件输出流:FileInputStream ,数据输入流:DataInputStream,缓冲输入流;BuferedInputStream,缓冲输出流:BuferedOutputStream,有文件输出流:FileoutputStream ,数据输入流:DataOutputStream等!
热心网友
时间:2022-05-07 21:12
java输入输出流主要分字节流和字符流两种形式。字节流是8位通用字节流,其基本单位是字节。FileInputStream和FileOutputStream以字节流的方式读写文本文件BufferedReader和BufferedWriter以字符流的方式读写文本文件,而且效率更高DataInputStream和DataOutpueStream用于读写二进制文件
热心网友
时间:2022-05-07 22:47
输入流:FileInputStream、BufferedReader、DataInputStream、ObjectInputStream、输出流:FileOutputStream、BufferedWriter、DataOutputStream、ObjectOutPutStream
热心网友
时间:2022-05-08 00:38
Java 输入/输出(I/O)机制提供了一套简单的,标准化的API以便从不同的数据源读取和写入字符和字节数据。在“面向对象编程:Java collection更有效管理elements”一文中,我们讨论了Java 集合类架构中的类和功能并介绍了它的排序功能。在本文中,我们将学习Java 平台提供的这些I/O类,接口和操作。让我们先从了解Java 数据流开始。
数据流
Java所有的I/O机制都是基于数据流的,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。
Java.io是大多数面向数据流的输入/输出类的主要软件包。这个软件包包含了两个抽象类,InputStream和OutputStream。所有其它面象数据流的输入/输出类都要扩展这两个基类。
java.io软件包提供了一些类和接口,它们在由InputStream和OuputStream类提供的读写操作的顶端定义了一些有用的抽象。例如,ObjectInputStream类提供了让你把输入/输出流中的数据当成对象来读取的方法,而ObjectOutputStream类提供了让你能够把Java对象写入数据流中的方法。
优化读写过程
JDK 1.1 增加了一套读写类,它们提供了比现有数据流类更有用的抽象和更好的输入/输出性能。例如,BufferedReader和BufferedWriter 类被用来从基于字符的输入和输出流中读取和写入文本。BufferdReader 类缓存字符以更高效的读取字符串,数组和文本行。BufferedWriter类缓存字符以更高效的写入字符串,数组和文本行。BufferedReader和BufferedWriter 类可以按需求进行设置。
Java输入/输出架构提供的读取器和写入器类包括 LineNumberReader 类,CharArrayReader类,FileReader类,FilterReader类,PushbackReader类,PipedReader类,StringReader类以及其它一些类。这些类是在InputStream和OuputStream类顶部的包裹类因此提供了与InputStream和OuputStream类相似的方法。但是,这些类为读写特定的对象,比方文件,字符数组和字符串等等提供了更高效而有用的抽象。
读取数据
当你从一个相应的数据源对象里提取输入流或者是创建一个读取器对象的时候就会自动打开一个输入流。例如,要为一个文件打开输入流,我们只需要以下面的方式把文件名传递给Java.io.FileReader对象的构造函数:
java.io.FileReader fileReader = new java.io.FileReader("/home/me/myfile.txt");
要按顺序读取FileReader底层的输入流中的一个字节数据,只需要使用不带参数的read方法。表A中的代码段从一个文件读取文本数据,一次一个字符,然后把它写入System.out里。
要从输入流读取指定数目的字节数据到char数组里,只需要使用带一个char[]参数的read方法。数组的长度被用来确定应该读取的字符的个数。表B演示了这个技术。
要关闭一个输入流以及这个流使用的所有系统资源,你只需要以下面的方式调用close方法:
fileReader.close();
写入数据
象一个输入流一样,输出流通常在你从相应的数据源提取它或者是在你创建一个写入对象的时候被自动的打开。例如,要为一个文件打开输出流,我们把文件的名字传递给java.io.FileWriter对象的构造函数,如下所示:
java.io.FileWriter fileWriter = new
java.io.FileWriter("/home/me/out.txt");
要将一个特定的字符写入到输出流中,可以使用带一个int参数的write方法,int参数代表要定入的字符。
int aChar = (int)'X';
fileWriter.write(aChar);
要在输出流给定的偏移地址写入一个char数组中特定数目的字符,你可以使用带一个char[]参数,一个int 偏移量参数和一个int长度参数的write方法,如下面的例子所示:
fileWriter.write(buffer, 0, byteCount);
要关闭一个输出流并释放所有与之相关的系统资源,可以使用close方法,就象这样:
fileWriter.close();
要强迫写出一个输出流中的所有数据,可以使用下面的flush方法:
fileWriter.flush();
把它们全部综合起来
我们可以使用我们学习过的这些函数从一个文件中读取数据并同时写到另一个文件中去,如表C所示。
总结
Java的输入/输出机制为从不同的数据源读取和写入字符增加了一套简单而标准化的API。你对一种数据源使用Java流的经验能够让你容易的使用其它由Java提供的数据源类型。
在我们下一篇文章中,我们将会开始学习Java平台的联网和远程通讯架构。我们将会把我们对Java流的讨论扩展到这些环境并演示如何打开远程数据源,并象操作本地数据源,比方文件一样,写入数据和读取数据
------------------------
Java中有几种类型的流
Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的.
Java中有几种类型的流?
从输入输出方面来讲有: 输入流、输出流 从流的内容上来讲有:字节流、字符流 JAVA的基本语法:编写Java程序时,应注意以下几点:大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字...
Java中有几种类型的流?
从输入流中读取字节 Int read();从输入流中顺序读取源中的单个字节数据,返回字节值(0~255之间的一个整数),如果到达源的末尾,则返回-1 Read方法还可以吧多个字节读入到字节数组中:Int read(byte b[]);Int read(byte b[],int off,int len);关闭流 使用close();FileOutputStream类 ...
java中的io流有哪些
节点流(低级流)、处理流(高级流)最基本的几种进行简单介绍:•;InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。•OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。
java输入输出流怎么写,
(1) java将读取数据对象成为输入流,能向其写入的对象叫输出流。结构图如下:输入流:输出流二.InputStream类inputstream类和outputstream类都为抽象类,不能创建对象,可以通过子类来实例化。InputStream是输入字节数据用的类,所以InputStream类提供了3种重载的read方法.Inputstream类中的常用方法:(1) public abstract ...
java.io的Java流输入输出原理
JDK所提供的所有流类位于java.io包中,都分别继承自以下四种抽象流类。InputStream:继承自InputStream的流都是用于向程序中输入数据的,且数据单位都是字节(8位)。OutputStream:继承自OutputStream的流都是程序用于向外输出数据的,且数据单位都是字节(8位)。Reader:继承自Reader的流都是用于向程序...
JAVA的输入输出流是指的什么啊?
Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的: 在这其中InputStream和OutputStream在早期的Java版本中就已经存在了,它们是基于字节流的,而基于字符流...
java.ioJava流输入输出原理
BufferedReader 和 BufferedWriter 用于高效读写单个字符、数组和字符串。ByteArrayInputStream 和 ByteArrayOutputStream 实现了内部缓冲区的字节流和输出流。CharArrayReader 和 CharArrayWriter 实现了字符输入输出流的缓冲区。Console 类提供了访问 Java 虚拟机关联的基于字符的控制台设备的方法。DataInputStream ...
java输入输出流的本质是什么?
Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的。在这其中InputStream和OutputStream在早期的Java版本中就已经存在了,它们是基于字节流...
请问在JAVA 的输入与输出流当中,什么时候该使用字符流?什么时候该使用...
字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是音频文件、图片、歌曲,就用字节流好点,如果是关系到...