java流类
1. java 中有几种类型的流
1:按照流的方向(参考点永远是自己的程序)分:
输入流(InputStream):只能向其中读取数据的流.
输出流(OutputStream):只能向其中写出数据的流.
注意:输入流和输出流本身都是抽象类,不能直接实例化,如果想操作对象,则必须实例化这些类的子类对象.
2:按照数据的传输单位分:
字节流:以字节为单位传输数据的流.
字符流:以字符为单位传输的数据的流.
3:按照功能分:
节点(低级)流:直接对目标设备进行操作的流.
处理(高级)流:对节点流进行连接和封装,生成功能更加强大的流。
在java中,最基础的流类有哪些?
字节流:InputStream:只能读取字节数据的流.OutputStream:只能写出字节数据的流.
字符流:Reader:只能读取字符数据的流.Writer:只能写出字符数据的流.
2. Java中有几种类型的流
字节流
,字符流。字节流继承于
InputStream
、
OutputStream
,字符流继承于InputStreamReader、
OutputStreamWriter。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。
3. java中流的种类,按功能和内容分别介绍
1、从功能上:输入流、输出流。
输入流就是从外部输入数据到程序,输出流就是从程序输出数据到外部。
外部就是只硬盘、数据库、网络等。
2、从结构上:字节流、字符流。
字节流是操作字节集的,字符流是操作字符串的。
字符串转换为字节集也可以通过字节流进行传输。
3、从来源上:节点流、过滤流。
节点流好像也叫原始流,过滤流好像也叫装饰流,不记得了。
过滤流操作的本质也是节点流,就像List的本质是数组一样。
这个很抽象,你学了就知道。
不行你就再网络一下吧。
4. Java中有几种类型的流
FileInputSream类
FileInputStream(String name)
FileInputStream(File file)
第一个构造方法是用给定的文件名name创建一个FileInputStream对象
第二个方法使用File对象创建FileInputStream对象
使用文件输入流读取文件
例如
FileInputStream istream=new FileInputStream(“myfile.dat”);
或
File f=new File(“myfile.dat”);
FileInputStream istream =new FileInputStream(f);
处理IO异常
Try{
FileInputStream istream=new FileInputStream(“myfile.dat”);
}
Catch(IOException e){}
从输入流中读取字节
Int read();从输入流中顺序读取源中的单个字节数据,返回字节值(0~255之间的一个整数),如果到达源的末尾,则返回-1
Read方法还可以吧多个字节读入到字节数组中:
Int read(byte b[]);
Int read(byte b[],int off,int len);
关闭流
使用close();
FileOutputStream类
该类提供了基本的文件写入能力,除了从OutputStream类继承来的方法外,FileOutputStream类还提供了两个构造方法:
FileOutputStream(String name)
FileOutputStream(File file)
第一个构造方法,给指定的文件名name创建一个FileOutputStreak对象
第二个构造方法,使用File对象创建FileOutputStream对象
可以使用write()方法把字节写入到输出流到达目的地
Write的格式:
Public void write(byte b[]) 其功能就是把b.length个字节到输出流
Public void write(byte b[],int off,int len)给定字节数组中,偏移off处写入len个字节到输出流
FileOutputStream流顺序的写文件,只要不关闭流,每次调用write方法就顺序地向输出流写入内容,直到流被关闭。
以上代码见hyh.io--File/Fileinputstream/Fileoutputsream
以上输入输出流容易出现的问题就是:汉字乱码
FileReader类和FileWriter类
与FileInputStream和FileOutputStream字节流相对应的是FileReader和FileWriter字符流,其分别是Reader和Writer的子类,构造方法如下:
FileReader(String filename)
FileWriter(String filename)
使用字节读取文件时,字节流不能直接操作Unicode字符,所以Java提供字符流。由于汉字在文件中占用了两个字节,如果使用字节流,读取不当会出现乱码现象,采用字符流就可以避免这个现象,因为在Unicode字符中,一个汉字被看做一个字符。
如果需要每次读取一行数据,FileReader类没有提供这样的方法,所以必须把这个流再接到另外一个流伤,从后面的流中读取一行数据。Java为其命名为BufferedReader类,构造方法:
BufferedReader(Reader in)
BufferedReader流能够读取文本行,方法是readLine()
通过向BufferedReader传递一个Reader对象,来创建一个BufferedReader对象,
FileReader inone=new FileReader(“Student.txt”);
BufferedReader intwo=BufferedReader(inone);
类似的可以将BufferedWriter流和FileWriter流连接在一起,然后使用BufferedWriter流将数据写到目的地,
FileWriter tofile=new FileWriter(”hello.txt”);
BufferedWriter out=BufferedWriter(tofile)
然后out使用BufferedReader类的方法:
Write(String s,int off,int len)把字符串s写入到文件中,off是s开始处的偏移量,len是写入的字符数量
代码详情见hyh.javaio.FileReaderandWriter
代码总结:FileReader和FileWriter可以进行汉字的读取和写入
BufferedReader有读取行的功能,readLine()
RandomAccessFile类
RandomAccessFile类创建的流指向既可以作为源也可以作为目的地。换句话说,当想对一个文件进行读写操作时,可以创建一个指向该文件的RandomAccessFile流
构造方法:
RandomAccessFile(String name,String mode)参数name用来确定一个文件名,给出流的源。参数mode取r或者rw(只读或者读写),决定对文件的访问权限。
RandomAccessFile(File file,String mode)参数file是一个File对象,给出源,同时也是目的地。参数mode决定访问权限。
该类中有一个seek(long a)方法,用来定位RandomAccessFile流的读写位置。参数a确定读写位置距离文件开头的字节个数。
还可以调用getFilePointer()方法或者流当前的读写位置
类方法P280:
关闭文件
获取读写位置等。。。。。。。。
使用RandomAccessFile流实现一个通讯录的录入与显示系统
见RandomAccessFile
数据流P284
数组流P286
对象流P288
序列化与对象克隆P290
文件锁FileLockP293
Process类中的流P295
带进度条的输入流P298(这个是我自己整理的一部分的学习笔记,教材为Java2实用教程第三版(耿祥义编着),因为使用了word进行整理,首字母大写忘记取消和一些代码在myeclipse上,但是不妨碍你查看)
5. Java中有几种类型的流
从输入输出方面来讲有: 输入流、输出流
从流的内容上来讲有:字节流、字符流
6. java中的“流”是什么
Java的流操作分为字节流和字符流两种。
1,字节流
就是所有的写操作都继承自一个公共超类java.io.OutputStream类。
2,字符流
就是所有的写操作都继承于一个公共超类java.io.Writer类。
7. java 流的分类有哪些
1. 处理的数据单位不同,可分为:字符流,字节流
字节流河字符流的区别:(各自在什么情况下使用)
字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是 音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点.
2.数据流方向不同,可分为:输入流,输出流
3.功能不同,可分为:节点流,处理流;
节点流:节点流从一个特定的数据源读写数据。
处理流:“连接”在已存在的流(节点流或处理流)之上通过对数据的处理为程序提供更为强大的读写功能。
看到左上角那个头像没,点一下这里有一群讨论问题的朋友;
8. Java中,常见的流类型有哪些
首先应该从两个角度来看:
从输入输出方面来讲: Java中有输入流和输出流
从流的编码方式上来讲: Java中有字节流和字符流
下面主要讲解从编码方式来看java几种常见的类型的流。
对于字节流而言:主要继承的抽象类为 InputStream和OutputStream
对于字符流而言:主要继承的抽象类为 InputStreamReader和OutputStreamReder
9. Java中流的分类都有哪些
大致是输入\输出流
他们包括以下具体的分类
1:字节流
2:字符流
3:缓冲字节流
4:缓冲字符流
10. Java中有几种类型的流
字节流类
抽象父类: InputStream,OutputStream
实现类包括如下几种:
BufferedInputStream 缓冲流-过虑流
BufferedOutputStream
ByteArrayInputStream 字节数组流-节点流
ByteArrayOutputStream
DataInputStream 处理JAVA标准数据流-过虑流
DataOutputStream
FileInputStream 处理文件IO流-节点流
FileOutputStream
FilterInputStream 实现过虑流-字节过虑流父类
FilterOutputStream
PipedInputStream 管道流
PipedOutputStream
PrintStream 包含print() 和 println()
RandomAccessFile 支持随机文件
字符流
抽象父类:Reader, Writer