JAVA I/0 流学习(一)

java I/0流属于java基础知识,是每个java学习者必须要掌握的知识点,尤其是在学习网络编程时尤为重要。

在变量、数组和对象中存储的数据是暂时存在的,程序结束后它们就会丢失,为了能够永久地保存程序创建的数据,需要将其保存在磁盘文件中,这样就可以在其他程序中使用它们。JAVA的 I/O技术可以将数据保存到文本文件中、二进制文件甚至是ZIP压缩文件中,以达到永久性保存数据的要求。掌握I/O处理技术能够提高对数据的处理能力。

Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。

Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。

 

流是一组有序的数据序列,根据流操作的类型,可分为输入流和输出流两种。I/O(Input/Output,输入/输出)流提供了一条通道程序,可以使用这条通道把源中的字节序列送到目的地。虽然I/O流通常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘、鼠标、内存或显示器窗口等。

理解:

一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。

JAVA语言定义了许多类专门负责各种方式的输入/输出,这些类都被放在java.io包中。其中,所有输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类;而所有输出流都是抽象类OutputStream(字节输出流)或抽象类Writer(字符输出流)的子类。

 

1.输入流

InputStream类是字节输入流的抽象类,该类中所有方法遇到错误时都会引发IOException异常。

read()方法:从输入流中读取数据的下一个字节。返回0~255范围内的int字节值。如果因为已经到达流末尾而没有可用的下一个字节,则返回值为-1

read(byte[] b):从输入流中读入一定长度的字节,并以整数的形式返回字节数。

mark(int readlimit)方法:再输入流的当前位置放置一个标记,readlimit参数告知此输入流在标记位置失效之前允许读取的字节数。

reset()方法:将输入指针返回到当前所做的标记处

skip(long n)方法:跳过输入流上的n个字节并返回实际跳过的字节数

markSupported()方法:如果当前流支持mark()/reset()操作就返回true

close()方法:关闭此输入流并释放与该流关联的所有系统资源

注意:并不是所有的InputStream类的子类都支持InputStream中定义的所有方法,如skip()、mark()、reset()等方法只对某些子类有用

import java.io.FileInputStream;

public class FileInputStream_test {
    //读取桌面上的txt文件并输出内容
    public static void main(String[] args) throws Exception {
        FileInputStream fileInputStream=new FileInputStream("C:\\Users\\liuyue\\Desktop\\test.txt");
        byte[] bytes=new byte[1024];
        int len=fileInputStream.read(bytes);
        String string=new String(bytes,0,len);
        System.out.println(string);
        f
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幽蓝丶流月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值