java数据流分类(数据流的分类)

本篇文章给大家谈谈java数据流分类,以及数据流的分类对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、Java中有几种类型的流2、java中的“流”是什么?3、数据流的分类4、Java中流的分类都有哪些5、Java中流的分类都有哪几种

Java中有几种类型的流

在Java.io包中还有许多其他的流,主要是为了提高性能和使用方便。C/C++只能提供字节流。Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的.

字符流和字节流是根据处理数据的不同来区分的。字节流按照8位传输,字节流是最基本的,所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。

1.字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串;

2. 字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。

读文本的时候用字符流,例如txt文件。读非文本文件的时候用字节流,例如mp3。理论上任何文件都能够用字节流读取,但当读取的是文本数据时,为了能还原成文本你必须再经过一个转换的工序,相对来说字符流就省了这个麻烦,可以有方法直接读取。

字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!

1.字节流:继承于InputStream \ OutputStream。

OutputStream提供的方法:

void write(int b):写入一个字节的数据

void write(byte[] buffer):将数组buffer的数据写入流

void write(byte[] buffer,int offset,int len):从buffer[offset]开始,写入len个字节的数据

void flush():强制将buffer内的数据写入流

void close():关闭流

InputStream提供的方法:

int read():读出一个字节的数据,如果已达文件的末端,返回值为-1

int read(byte[] buffer):读出buffer大小的数据,返回值为实际所读出的字节数

int read(byte[] buffer,int offset,int len)

int available():返回流内可供读取的字节数目

long skip(long n):跳过n个字节的数据,返回值为实际所跳过的数据数

void close():关闭流

2.字符流,继承于InputStreamReader \ OutputStreamWriter。

字符流的类:1),BufferedReader是一种过滤器(filter)(extends FilterReader)。过滤

器用来将流的数据加以处理再输出。构造函数为:

BufferedReader(Reader in):生成一个缓冲的字符输入流,in为一个读取器

BufferedReader(Reader in,int size):生成一个缓冲的字符输入流,并指定缓冲区的大小为size

public class IOStreamDemo {

public void samples() throws IOException { //1. 这是从键盘读入一行数据,返回的是一个字符串

BufferedReader stdin =new BufferedReader(new InputStreamReader(System.in));

System.out.print(”Enter a line:”);

System.out.println(stdin.readLine());

//2. 这是从文件中逐行读入数据

BufferedReader in = new BufferedReader(new FileReader(”IOStreamDemo.java”));

String s, s2 = new String();

while((s = in.readLine())!= null)

s2 += s + “\n”;

in.close();

//3. 这是从一个字符串中逐个读入字节

StringReader in1 = new StringReader(s2);

int c;

while((c = in1.read()) != -1)

System.out.print((char)c);

//4. 这是将一个字符串写入文件

try {

BufferedReader in2 = new BufferedReader(new StringReader(s2));

PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter(”IODemo.out”)));

int lineCount = 1;

while((s = in2.readLine()) != null )

out1.println(lineCount++ + “: ” + s);

out1.close();

} catch(EOFException e) {

System.err.println(”End of stream”);

}

} }

对于上面的例子,需要说明的有以下几点:

1. InputStreamReader是InputStream和Reader之间的桥梁,由于System.in是字节流,需要用它来包装之后变为字符流供给BufferedReader使用。

3. PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter(”IODemo.out”)));

这句话体现了Java输入输出系统的一个特点,为了达到某个目的,需要包装好几层。首先,输出目的地是文件IODemo.out,所以最内层包装的是FileWriter,建立一个输出文件流,接下来,我们希望这个流是缓冲的,所以用BufferedWriter来包装它以达到目的,最后,我们需要格式化输出结果,于是将PrintWriter包在最外层。

Java流有着另一个重要的用途,那就是利用对象流对对象进行序列化。

在一个程序运行的时候,其中的变量数据是保存在内存中的,一旦程序结束这些数据将不会被保存,一种解决的办法是将数据写入文件,而Java中提供了一种机制,它可以将程序中的对象写入文件,之后再从文件中把对象读出来重新建立。这就是所谓的对象序列化。Java中引入它主要是为了RMI(Remote

Method Invocation)和Java Bean所用,不过在平时应用中,它也是很有用的一种技术。

java数据流分类(数据流的分类)

java中的“流”是什么?

Java中的流是个抽象的概念,当程序需要从某个数据源读入数据的时候,就会开启一个数据流,数据源可以是文件、内存或网络等等。相反地,需要写出数据到某个数据源目的地的时候,也会开启一个数据流,这个数据源目的地也可以是文件、内存或网络等等\x0d\x0a\x0d\x0aJava中的流可以从不同的角度进行分类:\x0d\x0a按照流的方向不同:分为输入流和输出流。\x0d\x0a按照处理数据单位的不同:分为字节流(8位)和字符流(16位)。\x0d\x0a按照功能不同:分为节点流和处理流。\x0d\x0a节点流:是可以从一个特定的数据源(节点)读写数据的流(例如文件,内存)。就像是一条单一的管子接到水龙头上开始放水。\x0d\x0a处理流:是“连接”在已经存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。就像在已经接了一条管子(节点流)的基础上,又套上几个更粗,具有特殊功能的管子(处理流)对流出的水进一步的处理。\x0d\x0a四种基本流InputStream,OutputStream,Reader,Writer又分别有更具体的子类,分为文件流,缓冲流,数据流,转换流,Print流,Object流等,都分别有特定的功能或用来操作特定的数据

数据流的分类

数据的性质、格式不同,则对流的处理方法也不同,因此,在Java的输入/输出类库中,有不同的流类来对应不同性质的输入/输出流。在java.io包中,基本输入/输出流类可按其读写数据的类型之不同分为两种:字节流和字符流。 数据流分为输入流(InputStream)和输出流(OutputStream)两类。输入流只能读不能写,而输出流只能写不能读。通常程序中使用输入流读出数据,输出流写入数据,就好像数据流入到程序并从程序中流出。采用数据流使程序的输入输出操作独立与相关设备。

输入流可从键盘或文件中获得数据,输出流可向显示器、打印机或文件中传输数据。 为了提高数据的传输效率,通常使用缓冲流(Buffered Stream),即为一个流配有一个缓冲区(buffer),一个缓冲区就是专门用于传输数据的内存块。当向一个缓冲流写入数据时,系统不直接发送到外部设备,而是将数据发送到缓冲区。缓冲区自动记录数据,当缓冲区满时,系统将数据全部发送到相应的设备。

当从一个缓冲流中读取数据时,系统实际是从缓冲区中读取数据。当缓冲区空时,系统就会从相关设备自动读取数据,并读取尽可能多的数据充满缓冲区。

Java中流的分类都有哪些

大致是输入\输出流

他们包括以下具体的分类

1:字节流

2:字符流

3:缓冲字节流

4:缓冲字符流

Java中流的分类都有哪几种

流有哪些分类?

可以从不同的角度对流进行分类:

1. 处理的数据单位不同,可分为:字符流,字节流

2.数据流方向不同,可分为:输入流,输出流

3.功能不同,可分为:节点流,处理流

关于java数据流分类和数据流的分类的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年4月4日 01:24:13
下一篇 2024年4月4日 01:31:24

相关推荐

  • java输入a输出abc,java输入a输出A

    java多线程中怎么依次循环输出字母A,B,C 1、你这程序运算出来只有三种答案:A,AB,ABC。 2、实现思路:实际上就是先输入三个数,之后分别和另外两个数比较,之后从小到大进行数值替换,之后分别输出即可。 3、第二个线程用循环打印从a到b之间的字符。这句是a到z的字符吧。 用java编写随意输入一个字母显示其下一个字母例如输入a显示b输入A显&#823…

    2024年5月19日
    3700
  • java用什么web服务器,javaweb可使用哪种服务器

    红河java培训学校告诉你web服务器类型介绍? 街头流氓 Apache又称httpd server,是目前应用最广泛的web服务器,应用于各种平台。当Apache首次推出时,它有许多缺陷。现在已经修复完善了。如果你是一名web服务器研究人员,边肖建议你必须学会使用Apache。 (1) WWW服务器(WWW Server)WWW服务器也称为Web服务器(W…

    2024年5月19日
    3500
  • 扫码枪java,扫码枪灯亮但扫不出来怎么办

    Java中怎么调用扫描枪 扫描控制台输入当通过newScanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。 总之c/s架构的java程序调用扫描仪通过jni+twain编程既可完成。 比…

    2024年5月19日
    4100
  • java导出txt文件的简单介绍

    java中输出txt文件 在新建好的文件夹中新建一个文本文档,把文档名改为HelloWorld.java,并在该文档中写好如下程序。 在D盘新建两个文件test.txt,testtxt 把内容拷到test中,test1为输出。。 《java 程序》百度网盘资源免费在线观看 链接:提取码:1mur Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点…

    2024年5月19日
    3100
  • java小球移动,java小球落地

    JAVA实现,在屏幕内一个小球随机移动 1、int y=Math.abs(new Random().nextInt()) % (getSize().height;//将球的y随机位置控制在屏幕内。 2、java是编程语言里比较难学的一门,如果有心从事编程方向的工作,最好到专业机构学习并有更多的项目实践,更贴近市场,这样更有利于将来的发展。 3、监听者实现的接…

    2024年5月19日
    3600
  • java和c语言哪个好学,java语言和c语言哪个更好

    学c语言好还是java语言好? 1、综合以上几点考虑,我们得出结论:无论学习Java还是C语言都有其优势和适用场景,具体选择需根据自身情况进行判断。 2、目前,Java是比C语言要热门的,但是想要在编程上长足发展,学习更为全面的知识结构的话,建议从c语言开始学起。而且c语言不仅在编程方向有所成就,也是游戏引擎的基石,比如说UEUnity 3d等等。 3、综上…

    2024年5月19日
    6100
  • java工程师视频,java 工程师

    java工程师需要掌握什么技能? Java工程师应该具备的技能至少熟练Java常用命令和常用选项;必须至少熟练使用一种IDE的开发工具,例如Eclipse;必须有数据库基础如mysql、sqlserver,以及对Linux系统熟练的使用。 java工程师需要学什么?下面为您详细介绍!JavaEE基础:Java基础语法、面向对象、核心类库、集合、异常、IO、线…

    2024年5月19日
    3600
  • java现在主要用于什么作用,java主要用于什么开发

    java主要用来开发什么 1、开发网站:Java在开发高访问、高并发、集群化的大型网站方面很有优势,因此许多网站都是用Java写的。Java可以用来做网站,很多大型网站都是用Java写的。 2、Java是一种高级语言,就是用来编程的,相关工作用途:Java可以开发网站,例如,一些企业的门户网站;Java可以做软件,例如,信息管理系统、员工打卡系统;Java用…

    2024年5月19日
    3400
  • java获得linux流量,java获取linux磁盘空间

    如何在java程序中调用linux命令或者shell脚本 1、例如,我需要在linux下实行linux命令:sh test.sh,下面就是执行test.sh命令的方法:这个var参数就是日期这个201102包的名字。 2、在java程序中如何调用linux的命令?如何调用shell脚本呢? 这里不得不提到java的process类了。 3、java提供的Ru…

    2024年5月19日
    5000
  • javalinux时间戳,java的时间戳

    JAVA获取时间戳,哪个更快 结果发现 System.currentTimeMillis() 这种方式速度最快 Calendar.getInstance().getTimeInMillis() 这种方式速度最慢,看看源码会发现,Canlendar因为要处理时区问题会耗费很多的时间。所以建议多使用第一种方式。 时间戳通常是”yyyyMMddHHmmss“的,举…

    2024年5月19日
    3700

发表回复

登录后才能评论



关注微信