社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
应用程序需要与外部设备进行数据交换,最常见的外部设备是磁盘和网络。
IO指的是应用程序对外部设备的输入与输出
java中定义了许多类来进行数据的输入和输出 ,这些类都在java.io包中
file类有许多功能,能够创建、删除、重命名、等等很多操作
具体有哪些方法 不需要死记,在用到的时候去查API手册
file类的构造方法是
file(String filepath)
所以我们在创建对象时,这样创建: File f =new File(“c:1.txt”);
这是文件访问类,提供了许多文件访问的方法 支持随机访问,即可以跳到任意位置访问文件
这里先了解一下 具体有哪些构造方法查看api手册
它包含四个基本的抽象类inputstream,outputstream Reader Wirter 用你它们来创建具体的流式子类。
顶层的抽象类定义了所有流类的通用基本功能。
inputstream(输入字节流),outputstream是 字节流类,就是处理二进制数字,后两者是字符流类,就是处理字符数据。
f.write(“aa”) 表示将 aa写入到文件f中
f.read(b1) b1是我们定义的数组 所以表示将文件的内容读入到数组中,之后可以用来显示。
字符流类的顶层是Writer 和Reader类
字节流不能处理 unicode字符,所以要想直接输入输出 字符类数据 需要使用字符类来执行
FileReader 类
BufferedReader 的作用是为其他字符输入流添加一些缓冲功能。
构造方法
public BufferedReader(Reader in,int sz)
创建一个使用指定大小输入缓冲区的缓冲字符输入流。
in - 一个 Reader
sz - 输入缓冲区的大小
public BufferedReader(Reader in)
创建一个使用默认大小输入缓冲区的缓冲字符输入流。
常用方法
public int read() throws IOException
读取单个字符。
作为一个整数(其范围从 0 到 65535 (0x00-0xffff))读入的字符,如果已到达流末尾,则返回 -1
public int read(char[] cbuf) throws IOException
一次读取一个字节数组
cbuf - 目标缓冲区
读取的字符数,如果已到达流的末尾,则返回 -1
public void close() throws IOException
关闭该流并释放与之关联的所有资源。
public static void main(String[] args) throws Exception {
//创建字符缓冲输入流对象
BufferedReader br = new BufferedReader(new FileReader("bw.txt"));
//读数据
//一次读取一个字符数组
char[] chs = new char[1024] ;
int len = 0 ;
while((len=br.read(chs))!=-1) {
System.out.println(new String(chs,0,len));
}
//释放资源
br.close();
}
Java中的流是个抽象的概念,当程序需要从某个数据源读入数据的时候,就会开启一个数据流,数据源可以是文件、内存或网络等等。相反地,需要写出数据到某个数据源目的地的时候,也会开启一个数据流,这个数据源目的地也可以是文件、内存或网络等等
Java中的流可以从不同的角度进行分类:
按照流的方向不同:分为输入流和输出流。
按照处理数据单位的不同:分为字节流(8位)和字符流(16位)。
按照功能不同:分为节点流和处理流。
节点流:是可以从一个特定的数据源(节点)读写数据的流(例如文件,内存)。就像是一条单一的管子接到水龙头上开始放水。
处理流:是“连接”在已经存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。就像在已经接了一条管子(节点流)的基础上,又套上几个更粗,具有特殊功能的管子(处理流)对流出的水进一步的处理。
四种基本流InputStream,OutputStream,Reader,Writer又分别有更具体的子类,分为文件流,缓冲流,数据流,转换流,Print流,Object流等,都分别有特定的功能或用来操作特定的数据
http://www.cnblogs.com/shitouer/archive/2012/12/19/2823641.html
从学java第一天,我们就经常用到System.out.println(),实际上查阅文档可知,System.out就是Sun 编的一个PrintStream的实例对象。PrintStream顾名思义,Sun编它,就是用来打印的,以各种各样的格式,打印各种各样的数据,
IO包中类的层次结构示意图
就是将对象转换成二进制数据流 方便数据的传输和操作
构造的某个类实现了序列化结构,用它创建的对象就可以被序列化。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!