请问这里出现什么问题呢?只能打印我很好!

来源:4-7 自由编程

aming41

2020-06-19 15:29:39

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 Demo {

	public void transWriteByBuf(String s) {
		try {
			FileOutputStream fos = new FileOutputStream("imooc.txt");
			OutputStreamWriter osw = new OutputStreamWriter(fos);
			BufferedWriter bw = new BufferedWriter(osw);
			bw.write(s);
			bw.flush();
			fos.close();
			osw.close();
			bw.close();
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public String transReadByBuf() {
		String s = "";
		try {
			FileInputStream fis = new FileInputStream("imooc.txt");
			InputStreamReader isr = new InputStreamReader(fis);
			BufferedReader br = new BufferedReader(isr);
			String n = null;
			while((n = br.readLine()) != null) {
				s = s + n + "\n";
			}
			fis.close();
			isr.close();
			br.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return s;
	}
	
	public static void main(String[] args) {
		Demo d = new Demo();
		d.transWriteByBuf("你好吗");
		d.transWriteByBuf("我很好!");
		System.out.println(d.transReadByBuf());
	}

}


写回答

2回答

好帮手慕阿慧

2020-06-19

同学你好,同学调用了2次transWriteByBuf()方法。由于第二次调用应该是在原有的文本内容中追加新内容,所以创建FileOutputStream对象时应该传入true,表示追加。

http://img.mukewang.com/climg/5eec78f9095e6bed00020002.jpghttp://img.mukewang.com/climg/5eec78f9095e6bed00020002.jpg参考代码如下:

http://img.mukewang.com/climg/5eec790409090b4f06710095.jpg

readLine()方法是读取一行,由于同学没有在imooc.txt文件中换行,所以会一次将所有内容读取出来。同学可以在写的是否添加\n表示换行。

参考代码如下:

http://img.mukewang.com/climg/5eec798409d9c28303830098.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快~

0

aming41

提问者

2020-06-19

输入流好像也有问题,能帮忙解决一下吗 谢谢

0
hming41
h 另外能帮忙回复下readLine()方法吗,因为这里是参考其他同学的
h020-06-19
共1条回复

0 学习 · 11489 问题

查看课程