您的位置:首页 > 职场人生

黑马程序员——10_IO_read方法笔记

2015-07-05 22:51 411 查看
已字节流为例。
开始对于read方法返回值存在疑问,后通过最返回值打印,进一步确认具体返回内容,确信read()返回为下一个字节数据内容,而read(数组)和read(byte[] b,int offset,int length)返回的是本次缓冲的字节长度,即多少个字节,且这个返回值小于等于传入数组的长度。

再一个是write方法实现的区别。

首先用write(int b)输出的文本文件使用UE查看时,是以文字的形式展现。

而使用write(数组)和write(byte[] b,int offset,int length)输出的文本文件使用UE查看时,是以编码的形式展现(但仍能获取原文字讯息),而用记事本打开则恢复文字形式。

一下为实例代码:

注:为了迅速解决问题(对read和write的疑问),将异常直接抛出了

import java.io.*;

public class FileStreadDemo {

public static void main(String[] args) throws IOException{

String t="e:\\java\\javarun\\FileStream.txt";

String s="e:\\java\\javarun\\Res.txt";

Stream2(s,t);

}

public static void Stream1(String s,String t)throws IOException{

FileOutputStream fos=new FileOutputStream(t);

FileInputStream fis=new FileInputStream(s);

int b=0;

while((b=fis.read())!=-1){//read()返回是下一个字节数据

fos.write(b);

}

fos.close();

fis.close();

}

public static void Stream2(String s,String t)throws IOException{

FileOutputStream fos=new FileOutputStream(t);

FileInputStream fis=new FileInputStream(s);

int b=0;

byte[] barr=new byte[fis.available()];//仅适用于小文件,大文件用1024整数倍

while((b=fis.read(barr))!=-1){//read(数组)返回的是本次读取数据长度,即多少个字节

fos.write(barr,0,b);

}

fos.close();

fis.close();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: