JAVA流
来源:互联网 发布:java的compare方法 编辑:程序博客网 时间:2024/05/18 02:02
流概念
流是一串连续不断的数据的集合,就像水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流。数据写入程序可以是一段一段地向数据流管道中写入数据,这些数据段会按先向顺序形成一个长的数据流。对数据的读取程序来说,看不到数据流在写入时的分段情况,每次可以读取其中的任意长度的数据,但只能先读取前面的数据后,再读取后面的数据。不管写入时是将数据分多次写入,还是作为一个整体一次写入,读取时的效果都是完全一样的。
流的分类方式
输入流和输出流
以程序为参考点,按数据流的方向不同分为输入流和输出流
字节流和字符流
按处理数据的单位不同分为字节流和字符流
节点流和处理流
按功能不同分为节点流和处理流
流的四大抽象类
J2SDK所提供的所有流类型位于包java.io内都分别继承以下四种抽象流类型
InputStream(字节输入流)
- 结构
- 基本方法
InputStream是一个抽象类,程序可以通过InputStream类从文件中把内容读取出来,首先看一下InputStream类的定义:
public abstract class InputStream extends Object implements Closeable
如果现在是从文件中读取,因为InputStream本身是一个抽象类,必须依靠其子类FileInputStream来实现, 看FileInputStream类的构造方法:
public FileInputStream(File file) throws FileNotFountException
读取文件:
import Java.io.File;import Java.io.InputStream;import Java.io.FileInputStream;import Java.io.IOException;public class ReadFile{ public static void main(String[] args)throws IOException{ File file = new File("d:"+File.separator+"test.txt"); InputStream inputstream = new FileInputStream(file); byte[] b = new byte[(int) f.length()]; inputstream.read(b); inputstream.close(); system.out.println(new String b); }}
如果一个字节一个字节读入,并且不知道文件的大小:
import Java.io.File;import Java.io.InputStream;import Java.io.FileInputStream;import Java.io.IOException;public class ReadFile{ public static void main(String[] args)throws IOException{ File file = new File("d:"+File.separator+"test.txt"); InputStream inputstream = new FileInputStream(file); byte[] b = new byte[1024]; int temp = 0; int len = 0; while((temp=inputstream.read())!=-1){//-1标志文件读完 b[len]=(byte)temp; len++; } inputstream.close(); system.out.println(new String(b,0,len)) }}
OutputStream类(字节输出流)
结构
基本方法
OutputStream类和InputStream类一样,都是抽象类,如果要操作一个文件,可以使用FileOutputStream类。
OutputStream类的定义:
public abstract class OutputStream extends Objects implements Closeable,Flushable
FileOutputStream类的构造方法:
public FileOutputStream(File file) throws FileNotFoundException
写数据:
import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;import java.io.IOException;public class WriteFile{ public static void main(string[] args) throw IOException{ File file = new File("d:" + File.separator+"test.txt"); OutputStream outputstream = new FileOutputStream(file) String str = "Hello World" byte[] b = str.getBytes(); outputstream.write(b); outputstream.close(); }}
Reader类(字符输入类)
- 结构
- 基本方法
Reader类是使用字符的方式从文件中取出数据,定义如下:
public abstract class Reader extends Objects implements Readable,Closeable
Reader本身也是抽象类,如果现在要从文件中读取内容,则可以直接使用FileReader子类。FileReader的构造方法定义如下:
public FileReader(File file)throws FileNotFoundException
读取数据:
import java.io.File;import java.io.FileReader;import java.io.Reader;import java.io.IOException;public class Read{ public static void main(string[] args)throw IOException{ File file = new File("d:" + File.separator+"test.txt"); Reader inputreader = new FileReader(file); char[] c=new char[1024]; int len=inputreader.read(c); inputreader.close(); System.out.println(new String(c,0,len)); }}
Wirter类(字符输出类)
- 结构
- 基本方法
Wirter类使用子类FileWriter向文件中写入内容
Wirter类的定义:
public abstract class Writer extends Object implements Appendable,Closeable,Flushable
FileWriter类的构造方法
public FileWriter(File file)throws IOException
写文件:
import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.Writer;public class Test16 { public static void main(String[] args) throws IOException { File f = new File("d:" + File.separator+"test.txt"); Writer out=new FileWriter(f); String str="Hello World"; out.write(str); out.close(); }}
总结
目前对于这些内容还只是概念上的理解,没有再具体实例中看到,也没有具体实践,后面继续!
- Java深入 - Java 流
- Java流
- java流
- Java--流
- java 流
- java流
- Java 流
- Java流
- JAVA流
- java流
- Java- 流
- java流
- java流
- java流
- Java流
- Java流
- Java 流
- Java流
- Android 各类动画的使用方法
- 设计模式-简单工厂模式
- js去除数组重复元素
- Tachyon架构分析和现存问题讨论
- c#中new关键字的用处
- JAVA流
- ios学习笔记(二)第一个应用程序--Hello World
- 2.3.2笔记-归并有序链表
- ViewPager循环滑动及自动播放
- 问题
- javaweb学习总结(四)——Http协议
- [翻译] Protobuf 语言指南 ( proto 2 )
- View之PopupMenu
- 洛谷P1026 统计单词个数