4-5编程练习

4-5编程练习

package com.file;


import java.io.*;

public class ReaderAndWriter {

public void transWriteByBuf() {

try {

FileOutputStream fos = new FileOutputStream("hello.txt");

OutputStreamWriter osw = new OutputStreamWriter(fos);

char[] ch = {'你','好','吗','?','\n','我','很','好','。'};

osw.write(ch);

osw.flush();

osw.close();

fos.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void transReadByBuf() {

try {

FileInputStream fis = new FileInputStream("hello.txt");

InputStreamReader isr = new InputStreamReader(fis);

char[] cbuf = new char[300];

int n = 0;

while ((n = isr.read(cbuf)) != -1) {

System.out.println(new String(cbuf,0,n));

}

isr.close();

fis.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static void main(String[] args) {

ReaderAndWriter raw = new ReaderAndWriter();

raw.transWriteByBuf();

raw.transReadByBuf();

}


}

顺便问一下老师isr 和 fis 这种哪个先close有什么关系嘛

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿满 2018-09-27 18:19:33

1、建议同学将输入输出流的关闭操作写在finally中,防止由于读取过程中出现异常输入输出流不能被正常关闭。

2、题目要求使用带有缓冲区的字符流进行读写操作,所以要使用BufferedWriter和BufferedReader。

3、读取文本时建议使用readLine()方法。

4、isr和fis关闭顺序应该是先关闭isr,再关闭fis。流的关闭顺序一般是先打开的后关闭,后打开的先关闭。

祝:学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师