j2se bufferedwriter问题

这几天做编译原理一个练习题,需要用到文件读写的知识。费了好大力气才把文本指定的各种单词转化为了大写,然后在写入文件的时候又出现了新问题,因为我写文件的时候用的bufferedwriter,首先遇到了两个问题,把指定内容写入了文本文档,却发现文本没有换行,而原文件是有换行的;而且写中文的时候会出现乱码。后来通过各种搜索还有自己的尝试,把这两个问题解决了。第一个我在写的时候用bw.write(10)或者bw.write("\n")支持换行,也可以用newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。并非所有平台都使用新行符 ('\n') 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。 ;支持中文显示用bw.write(13),不过这个不够完美,要是别的国家的文字编码又怎么办,后来我看到了一种方式,是用先new一个outputstreamwriter,在构造函数的时候指定其编码方式即可,比如OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(file), "UTF-8")。同样像这样也可以解决bufferedReader读入乱码问题,这里我就不啰嗦了。这两个问题解决了又出现了一个新的问题,就是我在把读入的内容写入文件的时候,这个时候写进去的文件内容居然为空!我又查了API文档,bufferedWriter的write方法我并没有弄错啊,为什么会是这样。我又看了bufferedWriter的其它方法,其中有一个flush()方法, flush是刷新该流的缓冲,就是将缓冲区里的内容全部刷出去,在write之后再调用这个方法,文本内容全写进去了,搞定!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值