java的输入输出流

1.输入输出流

在Java中,把不同类型的输入输出源抽象为流,其中输入和输出的数据称为数据流(Data Stream)。数据流是Java程序发送和接收数据的一个通道,数据流中包括输入流(Input Stream)和输出流(Output Stream)。
通常应用程序中使用 输入流读出数据,输出流写入数据 。 流式输入、输出的特点是数据的获取和发送均沿数据序列顺序进行。相对于程序来说,输出流是往存储介质或数据通道写入数据,而输入流是从存储介质或数据通道中读取数据。

  • 面向字节的流,数据的处理以字节为基本单位;字节流(Byte Stream)每次读写8位二进制数,也称为二进制字节流或位流。
  • 面向字符的流,用于字符数据的处理。字符流一次读写16位二进制数,并将其做一个字符而不是二进制位来处理。
  • 需要注意的是,为满足字符的国际化表示,Java语言的字符编码采用的是16位的Unicode码,而普通文本文件中采用的是8位ASCⅡ码。

2.字节流

字节流有两个抽象的父类,InputStram和outputStream,本文主要记录文件的操作,其他的具体实现类暂不讨论,主要看一下经常使用的几个字节流实现类的使用。
针对文件操作的字节流主要包括FileInputStream与FileOutputStream

写入文件

	File inputFile = new File(fileLocalPath);
    FileOutputStream fileOutputStream = new FileOutputStream(inputFile);
    fileOutputStream.write(str.getBytes());
    fileOutputStream.close();

写入文件比较简单,传入一个File类型的对象来构造FileOutputStream的对象,然后调用write方法即可,最后需要要调用close,释放资源

读取文件

	FileInputStream fileInputStream = new FileInputStream(file);
            byte[] bytes = new byte[1024];
            int i;
            while((i=fileInputStream.read(bytes))!=-1){
                stringBuilder.append(new String(bytes,0,i));
            }
            Log.i(TAG, stringBuilder.toString());
            fileInputStream.close();

需要声明一个byte类型的数组,用于每次读取时将数据存入该数组,声明一个整型i用于保存一次读取到的字节数。最后再根据将字节数组转换成需要的类型,最后也需要调用close释放资源

3.字符流

字符流主要包括FileWriter和FileReader,字符缓冲流BufferedWriter,BufferedReader,用法与上述的字节流基本一致,调用read之后获取到的是字符类型,需要用char类型的数组去接收。

	FileReader fileReader = new FileReader(file);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            char[] chars = new char[1024];
            int charInt;
            while ((charInt = bufferedReader.read(chars))!=-1){
                Log.i(TAG,"char:"+new String(chars,0,charInt));
                stringBuilder.append(new String(chars,0,charInt));
            }
            Log.i(TAG,"stringResult : "+stringBuilder.toString());
            fileReader.close();
            bufferedReader.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值