Java中的FileInputStream,FileOutputStram,BufferedWriter

FileInputStream,FileOutputStram,BufferedWriter的作用,区别是什么?尽量详细一点,谢谢!!!!

1、public class FileInputStream extends InputStream FileInputStream 从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境。FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。
2、public class FileOutputStream extends OutputStream 文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。文件是否可用或能否可以被创建取决于基础平台。特别是某些平台一次只允许一个 FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。FileOutputStream 用于写入诸如图像数据之类的原始字节的流。要写入字符流,请考虑使用 FileWriter。 3、public class BufferedWriter extends Writer 将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。
该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。并非所有平台都使用新行符('\n') 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。通常 Writer 将其输出立即发送到底层字符或字节流。除非要求提示输出,否则建议用 BufferedWriter 包装所有其 write() 操作可能开销很高的 Writer(如 FileWriters 和 OutputStreamWriters)。例如,
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
将缓冲 PrintWriter 对文件的输出。如果没有缓冲,则每次调用 print() 方法会导致将字符转换为字节,然后立即写入到文件,而这是极其低效的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-15
他们都是一个“流类”,相信楼主对JAVA有所了解,所谓“流类” 顾名思义,就是跟数据流有关系的类。楼主说的FileInputSteam、FileOutputStream和BufferedWriter虽然都是“流类”,但是却属于两个不同的大类。这里建议楼主有必要区分一下。FileInputSteam和FileOutputStream是属于“字节流”类,但却都是用来处理File储存类型的文件的。而BufferedWriter属于“字符流”类。处理对象是“纯文本”(记事本里的文字)对象等。希望对你有帮助,不懂还可以再提问。。
第2个回答  2013-08-15
读取的方式不一样大小不一样 流的用的用法大致是这样的 你打开一个文件 你建立一个链接 你只能用一个字符或者字节 你这样读起来很不爽 你就再在它的外面套一个管子 让它缓冲一下 然后你就 在外面套的这个可以直接读取 一行 或者更多