了解各种I / O系统java

时间:2014-02-06 22:38:21

标签: java io bufferedstream

我最近在oracle.com上阅读了java教程,我正在尝试理解I / O.但是有很多东西,其中很多似乎是相同的,例如: 数据流 扫描器 为PrintWriter 缓冲流 文件i / o流 过滤流 等

具体而言,例如,扫描仪和数据流之间有什么区别?

起初我可以保持最重要但除了有太多的流和i / os。有没有人知道一个好的教程或网站可以得到所有这一切清楚。我缺乏理解开始变得烦人。

2 个答案:

答案 0 :(得分:1)

Scanner可以附加到 FileStreamStringReadable或任何衍生的内容从这些课程。把它想象成一个消费者。当你问它时它会吃东西。

Stream是来源。一些输入流有一个信号,上面写着“我没有输入!”如果继续使用已经输入的流,Java通常会等待更多输入或只是抛出异常。重要的是要注意,一旦流被消耗,它就会永远消失。一些读者有机制将流“重置”到更早的点,但这些花哨的schmancy机制不是标准流的一部分。把它们想象成河流。一旦你让部分河流流过,它就消失了。

System.inInputStream的一个示例,默认情况下,它挂在控制台上。想象一下,它是直接从你的键盘喂食。您可以将扫描仪连接到它并尝试使用用户的输入。扫描仪可以捕获您键入的内容,但如果您不将其存储在变量中,则键盘不会再次键入内容。

答案 1 :(得分:1)

这是一个难以回答的问题。我知道以前当我学习网络编程时,我也有同样的困惑 您可以看一下Lars Vogel的教程 - 他编写了易于理解的优秀代码:http://www.vogella.com/tutorials/JavaIO/article.html

另外,如果你有一本好书,那么在熟悉它们之后,Java类可能会更有意义。 Elliot“Rusty”Harold制作了一本优秀的Java网络编程书: Java Network Programming

您需要熟悉“java.io. *”类以及每个类的用途。有这么多的原因,因为你会将一个特定的类用于一种类型的应用程序。