java-文件IO操作 - Go语言中文社区

java-文件IO操作


应用程序需要与外部设备进行数据交换,最常见的外部设备是磁盘和网络。
IO指的是应用程序对外部设备的输入与输出
java中定义了许多类来进行数据的输入和输出 ,这些类都在java.io包中

1.File类

file类有许多功能,能够创建、删除、重命名、等等很多操作
具体有哪些方法 不需要死记,在用到的时候去查API手册
file类的构造方法是
file(String filepath)
所以我们在创建对象时,这样创建: File f =new File(“c:1.txt”);

2.RandomAccessFile类

这是文件访问类,提供了许多文件访问的方法 支持随机访问,即可以跳到任意位置访问文件

这里先了解一下 具体有哪些构造方法查看api手册

3. 流类(有很多)

它包含四个基本的抽象类inputstream,outputstream Reader Wirter 用你它们来创建具体的流式子类。
顶层的抽象类定义了所有流类的通用基本功能。

inputstream(输入字节流),outputstream是 字节流类,就是处理二进制数字,后两者是字符流类,就是处理字符数据。
在这里插入图片描述
f.write(“aa”) 表示将 aa写入到文件f中
f.read(b1) b1是我们定义的数组 所以表示将文件的内容读入到数组中,之后可以用来显示。

字符流类的顶层是Writer 和Reader类
字节流不能处理 unicode字符,所以要想直接输入输出 字符类数据 需要使用字符类来执行

FileReader 类
在这里插入图片描述


BufferedReader类(字符缓冲输入流),继承于reader

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


printStream类 (打印流)

从学java第一天,我们就经常用到System.out.println(),实际上查阅文档可知,System.out就是Sun 编的一个PrintStream的实例对象。PrintStream顾名思义,Sun编它,就是用来打印的,以各种各样的格式,打印各种各样的数据,


IO包中类的层次结构示意图
在这里插入图片描述
在这里插入图片描述

对象序列化

就是将对象转换成二进制数据流 方便数据的传输和操作

构造的某个类实现了序列化结构,用它创建的对象就可以被序列化。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_33458689/article/details/90515212
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢