fileoutputstream和fileWrite和bufferedBufferedOutputStream区别

一直不清楚这些东西的真正区别 请大神们详细说下 要具体的 还有读取的哪几个的区别

io流分为两大类,字节流和字符流。
字节流:OutputStream、InputStream
字符流:Writer、Reader

所有的文件在硬盘或在传输时都是以字节的方式进行的,包括图片等都是按字节的方式存储的,而字符是只有在内存中才会形成,所以开发中字节流使用比较广泛

可以参考java api文档
public class FileOutputStream extends OutputStream
文件输出流是用于将数据写入 File 或 FileDescriptor
的输出流。文件是否可用或能否可以被创建取决于基础平台。特别是某些平台一次只允许一个
FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。

public class FileWriter extends OutputStreamWriter
用来写入字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是可接受的。要自己指定这些值,可以先在 FileOutputStream
上构造一个 OutputStreamWriter。
文件是否可用或是否可以被创建取决于底层平台。特别是某些平台一次只允许一个
FileWriter(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。
FileWriter 用于写入字符流。要写入原始字节流,请考虑使用 FileOutputStream。

public class BufferedOutputStream extends FilterOutputStream
该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-19
简单点说,平常怎么用这几个类。
stream结尾的类都是流类型的输入、输出类,也就是说你写或读数据时要用byte[]。
String str = "hello world!";
fileoutputstream.write(str.getBytes());

Write结尾的是在相应的Stream结尾的类上进行了包装,你可以用读取与写入字符串了。
fileWrite.write("hello world!");

前面加Buffered是加了缓存功能的类,但他的主要功能还是要看最后是Stream还是writer.
相似回答