BufferedReader提供的方法是read(char[] cbuf, int off, int len)和readLine();等,用来处理字符流(文本文件)。 BufferedInputStream提供的方法是read(byte[] b, int off, int len)等,处理的是字节流(二进制文件)
OutputStreamWriter 这个可以写文件: new OutputStreamWriter(new FileOutputStream(outputFileStr), ENCODE)写字符串: bout=new ByteArrayOutputStream(); writer = new OutputStreamWriter(bout, ENCODE); ret = new String(bout.toByteArray(), ENCODE);
有了这两个类,我们可以直接面向字符编程,而字符向二进制数据的转码过程,被隐藏在内,我们不必关心细节问题。文件传输,一般都是面向二进制数据流来编程的,因为,既然传输文件数据,我们就没有必要关心文件的内容,我们又不是搞压缩的,传数据而已。
所以,楼主使用InputStream和OutputStream就可以了,
提高性能,可以使用BufferedInputStream
BufferedInputStream提供的方法是read(byte[] b, int off, int len)等,处理的是字节流(二进制文件)
读文件中的内容
Bufferedreader br = BufferedReader(new FileInputStream("文件路径\文件名"));往文件写字符
BufferedWriter bw =.....从键盘获得获得输入的字符串
Bufferedreader br = BufferedReader(new InputStreamReader(System.in));
String info = br.readLine();
//注意:br/bw读写的都是String型的,如果需要基本数据类型,需要强转。
Buffered流是中层流,可以往里包装其他流。
这是输入 BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(你要输出到哪里的路径+输出到那里的文件名));
读文件中的内容
Bufferedreader br = BufferedReader(new FileInputStream("文件路径\文件名"));这是什么意思? 字符流可以用字节流? 这句代码错误的离谱
确实,没注意。。改成FileReader
new OutputStreamWriter(new FileOutputStream(outputFileStr), ENCODE)写字符串:
bout=new ByteArrayOutputStream();
writer = new OutputStreamWriter(bout, ENCODE);
ret = new String(bout.toByteArray(), ENCODE);
没有哪一种流可以什么都干,你让File系列情何以堪。。