4.5练习

4.5练习

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;


public class ReadWriteTest {


public static void main(String[] args) {

transWriteBybuf();

transReadBybuf();

       

}

    public static void transWriteBybuf() {

//    return "你好吗?\n我很好!";

    try {

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

    BufferedInputStream bis=new BufferedInputStream(fis);

    InputStreamReader isr=new InputStreamReader(bis);

//     fis.close();

//     bis.close();

//     isr.close();

    

    } catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

    }

    

    public static void transReadBybuf() {

    try {   

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

    BufferedOutputStream bos=new BufferedOutputStream(fos); 

    OutputStreamWriter osw=new OutputStreamWriter(bos);

    osw.write("你好吗?\n我很好!");

    osw.flush();

    fos.close();

    bos.close();

    osw.close();     

    } catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

   

    }

}

创建两个方法分别表示输入,读取    请问字节字符的输入流怎么关闭, readLine()怎么用?

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

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

3回答
提问者 __Yang 2019-05-26 22:00:45

public static void transReadBybuf() {

    try {

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

    InputStreamReader isr=new InputStreamReader(fis);

    BufferedReader br=new BufferedReader(isr);

    String str="你好吗?\n我很好!";

    while(!(str=br.readLine()).equals("")) {

    System.out.println(str);

    }            

    br.close();

    isr.close();

    fis.close();

    

    } catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

    }

    

    public static void transWriteBybuf() {

    try {   

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

    OutputStreamWriter osw=new OutputStreamWriter(fos);

    BufferedWriter bw=new BufferedWriter(osw);   

    bw.write("你好吗?\n我很好!");

    bw.flush();

    bw.close();    

    osw.close();

    fos.close();

      

    } catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

   

    }

}

这是改动后的代码

  • 嗯,还会有个小问题,不知道你测试的时候有没有发现br.readLine()如果到最后一行,可能因为为空而导致再equals就会报错了。改成 while((str=br.readLine())!=null) 是更合理的
    2019-05-27 10:20:35
好帮手慕雪 2019-05-26 18:49:00

1)同学要把读到的内容展示出来,并且你不能确定是多少行数据,所以你要用循环。

2)关闭文件流时需要注意,要遵循先开后关的原则。

所以,可修改成如下所示:

http://img1.sycdn.imooc.com//climg/5cea6e9e000194f906430271.jpg

祝:学习愉快

  • 提问者 __Yang #1
    我按照老师您的方法改了之后 代码出现异常了 就在这一段,请看下为什么。
    2019-05-26 21:59:39
  • 提问者 __Yang #2
    public static void transReadBybuf() { try { FileInputStream fis=new FileInputStream("helle.txt"); InputStreamReader isr=new InputStreamReader(fis); BufferedReader br=new BufferedReader(isr); String str="你好吗?\n我很好!"; while(!(str=br.readLine()).equals("")) { System.out.println(str); } br.close(); isr.close(); fis.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void transWriteBybuf() { try { FileOutputStream fos=new FileOutputStream("helle.txt"); OutputStreamWriter osw=new OutputStreamWriter(fos); BufferedWriter bw=new BufferedWriter(osw); bw.write("你好吗?\n我很好!"); bw.flush(); bw.close(); osw.close(); fos.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
    2019-05-26 22:00:08
提问者 __Yang 2019-05-26 15:30:29

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;


public class ReadWriteTest {


public static void main(String[] args) {

transWriteBybuf();

transReadBybuf();

       

}

    public static void transReadBybuf() {

    try {

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

    InputStreamReader isr=new InputStreamReader(fis);

    BufferedReader br=new BufferedReader(isr);

    br.readLine();

    fis.close();

    isr.close();

    br.close();

    System.out.println();

    } catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

    }

    

    public static void transWriteBybuf() {

    try {   

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

    OutputStreamWriter osw=new OutputStreamWriter(fos);

    BufferedWriter bw=new BufferedWriter(osw);   

    bw.write("你好吗?\n我很好!");

    bw.flush();

    fos.close();

    osw.close();

    bw.close();  

  

    } catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

   

    }

}

我修改了下代码, 但还是不明白这题目该怎么处理。··

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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