java代码中有数据流吗 java里的流

java中的流是什么?

流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。

目前成都创新互联已为上千的企业提供了网站建设、域名、虚拟空间、成都网站托管、企业网站设计、尖山网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流。

可以将流想象成一个“水流管道”,水流就在这管道中形成了,自然就出现了方向的概念。

当程序需要从某个数据源读入数据的时候,就会开启一个输入流,数据源可以是文件、内存或网络等等。相反地,需要写出数据到某个数据源目的地的时候,也会开启一个输出流,这个数据源目的地也可以是文件、内存或网络等等。

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

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

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

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

1. 和 2. 都比较好理解,对于根据功能分类的,可以这么理解:

节点流:节点流从一个特定的数据源读写数据。即节点流是直接操作文件,网络等的流,例如FileInputStream和FileOutputStream,他们直接从文件中读取或往文件中写入字节流。

处理流:“连接”在已存在的流(节点流或处理流)之上通过对数据的处理为程序提供更为强大的读写功能。过滤流是

使用一个已经存在的输入流或输出流连接创建的,过滤流就是对节点流进行一系列的包装。例如BufferedInputStream和

BufferedOutputStream,使用已经存在的节点流来构造,提供带缓冲的读写,提高了读写的效率,以及DataInputStream和

DataOutputStream,使用已经存在的节点流来构造,提供了读写Java中的基本数据类型的功能。他们都属于过滤流。

来源:

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上,但是不妨碍你查看)

在java语言中处理数据基于流的形式,流有哪些分类形式

Java中的流从不同的角度可以分为以下几类:

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

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

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

java中如何使用数据流

那要看你是何种输入手段了,屏幕输入有Scanner之类,文件输入的有FileReader之类的,具体可以看下java.io里面的类

java数据流是咋回事,看不懂,考试挂了,做设计在打开文件和保存文件部分全抄的课本

您好,提问者:

数据流在Java中称之为:IO流。

IO流又分为两种:字符流、字节流。

1、如果是操作文本文件的话,使用:字符流。

2、如果操作的是不确定文件,比如视频、音频等,使用:字节流。

提示:其实字符流是基于字节流的,流无非就是读(输出)、写(输入)两个操作。

Java 中有几种类型的流

1:按照流的方向(参考点永远是自己的程序)分:

输入流(InputStream):只能向其中读取数据的流.

输出流(OutputStream):只能向其中写出数据的流.

注意:输入流和输出流本身都是抽象类,不能直接实例化,如果想操作对象,则必须实例化这些类的子类对象.

2:按照数据的传输单位分:

字节流:以字节为单位传输数据的流.

字符流:以字符为单位传输的数据的流.

3:按照功能分:

节点(低级)流:直接对目标设备进行操作的流.

处理(高级)流:对节点流进行连接和封装,生成功能更加强大的流。

在java中,最基础的流类有哪些?

字节流:InputStream:只能读取字节数据的流.OutputStream:只能写出字节数据的流.

字符流:Reader:只能读取字符数据的流.Writer:只能写出字符数据的流.


文章标题:java代码中有数据流吗 java里的流
URL分享:http://scyanting.com/article/hishdh.html