「过滤流java」过滤流动相的抽滤装置
本篇文章给大家谈谈过滤流java,以及过滤流动相的抽滤装置对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中的“流”是什么?
- 2、Java中有几种类型的流?
- 3、java中流的种类,按功能和内容分别介绍?
- 4、java 中四大基本流有什么联系
- 5、java中节点流与过滤流(处理流)的区别?
- 6、java编写程序,使用过滤流BufferdReader和BufferdWriter实现文件复制。
java中的“流”是什么?
流是个抽象的概念,是对输入输出设备的抽象,java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。
流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流。
可以将流想象成一个“水流管道”,水流就在这管道中形成了,自然就出现了方向的概念。
当程序需要从某个数据源读入数据的时候,就会开启一个输入流,数据源可以是文件、内存或网络等等。相反地,需要写出数据到某个数据源目的地的时候,也会开启一个输出流,这个数据源目的地也可以是文件、内存或网络等等。
可以从不同的角度对流进行分类:
1.
处理的数据单位不同,可分为:字符流,字节流
2.数据流方向不同,可分为:输入流,输出流
3.功能不同,可分为:节点流,处理流
1.
和
2.
都比较好理解,对于根据功能分类的,可以这么理解:
节点流:节点流从一个特定的数据源读写数据。即节点流是直接操作文件,网络等的流,例如fileinputstream和fileoutputstream,他们直接从文件中读取或往文件中写入字节流。
处理流:“连接”在已存在的流(节点流或处理流)之上通过对数据的处理为程序提供更为强大的读写功能。过滤流是
使用一个已经存在的输入流或输出流连接创建的,过滤流就是对节点流进行一系列的包装。例如bufferedinputstream和
bufferedoutputstream,使用已经存在的节点流来构造,提供带缓冲的读写,提高了读写的效率,以及datainputstream和
dataoutputstream,使用已经存在的节点流来构造,提供了读写java中的基本数据类型的功能。他们都属于过滤流。
来源:
Java中有几种类型的流?
从输入输出方面来讲有: 输入流、输出流
从流的内容上来讲有:字节流、字符流
JAVA的基本语法:
编写Java程序时,应注意以下几点:
大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。
类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass。
方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写,例如myFirstJavaClass。
源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。
主方法入口:所有的Java 程序由public static void main(String[]args)方法开始执行。
java中流的种类,按功能和内容分别介绍?
1、从功能上:输入流、输出流。
输入流就是从外部输入数据到程序,输出流就是从程序输出数据到外部。
外部就是只硬盘、数据库、网络等。
2、从结构上:字节流、字符流。
字节流是操作字节集的,字符流是操作字符串的。
字符串转换为字节集也可以通过字节流进行传输。
3、从来源上:节点流、过滤流。
节点流好像也叫原始流,过滤流好像也叫装饰流,不记得了。
过滤流操作的本质也是节点流,就像List的本质是数组一样。
这个很抽象,你学了就知道。
不行你就再百度一下吧。
java 中四大基本流有什么联系
InputStream\OutputStream\Reader\Writer构成了java.io的鼻祖。
具体如下:
InputStream和OutputStream类仅仅读取和写入单个的字节和字节数组,它们没有读取和
写入字符串和数值的方法。
对于Unicode文本,一个字符占用两个字节,所以出现了Reader和Writer。
特别:ZipInputSteam和ZipOutputStream能读写常见的ZIP压缩格式的文件。
InputStream、OutputStream、Reader、Writer类都实现了Closeable接口。
OutputStream和Writer都实现了Flushable接口。
FileInputStream和FileOutputStream能够把输入和输出流与磁盘文件关联起来。
eg:
FileInputStream fin = new FileInputStream("c:\\dev\\my.dat");------注意:最好使用反斜杠,反斜杠代表转义符使用。
或者:
File f = new File("c:\\dev\\my.dat');
FileInputStream fin = new FileInputStream (f);
用于读取字节:
byte b = (byte)fin.read();
用于读取数值:
DataInputStream dis = new DataInputStream(fin);
double d = dis.readDouble();
FileInputStream没有读取数值的能力,但是DataInputStream也没有从文件中读取数值的方法,所以两者注定在一起结合使用!
从上面我们可以知道:
java的处理IO的两种策略:一些流(如FileInputStream)可以从文件及其他地方接收字节;另一些流(如DataInputStream和PrintWriter)可以将字节组合成更加有用的数据类型。
eg:
FileInputStream fin = new FileInputStream("c:\\dev\\my.dat");---------从文件中读取值,创建流
DataInputStream dis = new DataInputStream(fin); --------结合后的流叫:过滤流(filtered stream)
double d = dis.readDouble();
默认情况下,流是不能进行缓冲处理的。就是每次对流进行read读取都要求操作系统发送一个新字节,若想要对当前目录下的文件
进行缓冲和数据输入操作,应该利用FileInputStream和FileOutputStream它们的子类合并为一个新的过滤流。
DataInputStream dis= new DataInputStream(new BufferedInputStream(new FileInputStream("c:\\dev\\my.dat")));
PushbackInputStream pis = new PushbackInputStream(new BufferedInputStream(new FileInputStream("c:\\dev\\my.dat")));-------能够对流进行跟踪,如下:
int b = pis.read(); -----读取下一个字节
if(b != '') pis.unread(b);--------不是自己想要的,把它扔回去
但是read和unread是PushbackInputStream仅有的方法,若既想预查看,又想获取值,可以用:
DataInputStream dis= new DataInputStream(
pis = new PushbackInputStream(new BufferedInputStream(new FileInputStream("c:\\dev\\my.dat")));
利用构造的真正实用的流序列,也为我们带来很大的灵活性。
处理zip文件:
ZipInputStream zip = new ZipInputStream(new FileInputStream("ocean.zip"));
DataInputStream dis = new DataInputStream(zip);
java中节点流与过滤流(处理流)的区别?
通常的来说 结点流 表示 一个位置(点) 比如 FileOutputStream 表示可以向一个文件写入字节内容
还有 其他的一些 XXXOutputStream XXXInputStream 也是结点流 通常跟 原始字节流有关系
可以是 信息流出位置 也可以说 信息流入的 位置
过滤流 通常代表拥有某种功能 但也要通过结点流实现其功能 比如 字节 与 字符 相互转化等
java编写程序,使用过滤流BufferdReader和BufferdWriter实现文件复制。
BufferedReader 和Writer就是用来对字符类型的数据进行读写的,
如果是复制文件的话要用BufferedInputStream和相关写入类来进行缓冲。
还有你那个写一句newLine 是什么意思,你如果只是复制文本的话还行,要是复制程序什么的那肯定是不行的。
多看些书和视频多学习吧!
关于过滤流java和过滤流动相的抽滤装置的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-11,除非注明,否则均为
原创文章,转载请注明出处。