在java中,输入输入主要涉及到两块,流+文件,说实话,其实文件可以剥离出去。
先说流:
流无非就是包括字节流和字符流。
字节流级别较低,在实际代码中尽量避免使用。因为它一次读8bit的01代码,是raw的,不经任何处理的。所以举个例子,在txt中读取数据的时候,总是无法呈现看到的东西,因为字符是以编码的方式放在文件中的,并且还很可能是变长编码,如果raw出来,大部分的情况下都是错误的。所以尽量避免使用吧。
字符流,一个read(),读取一个字符,返回值是int类型,注意这里不是说固定地读几个bit,而是一个字符,如果是变长编码的文件,那么每次读取的bit便不一样。这里是按照Unicode的标准来的。(utf,gb等只是Unicode的不同实现形式,他们的终极代码都是相同的)。
注意几个点吧。data处理方式只针对字节流,字符流中是没有的,像,dataInputStream。readLine()方法之存在于字符流 中,字节流相关的是没有的。
现在看来,其实流很简单。
如果还有疑问,参考http://docs.oracle.com/javase/tutorial/essential/io/index.html
对了,从文件中读取数据,可以看代码片中的,ReadDataFromFile.java
述说scanner和format,,我感觉和c语言中的scanf和格式输出比较像。常用来输入输出数据。
我感觉从字节,到字符,到格式输入输出级别越来越高。
在说文件吧:
文件这里主要讲了文件的移动,删除,重命名等文件管理
同时这里讲了一个随机存取文件类,顾明思议,就是在特定的位置读取,而不用顺序读取,貌似这个是字节流。
以上是我现在的理解,也许有错误,先记录下来,以备后观。