一:Scanner可以很好的达到读写文件的作用
Scanner的构造函数的参数是InputStream
InputStream是一个抽象类,FileInputStream是它的一个子类。而FileInputStream可以以String或File为参数读入文件流,然后用这个FileInputStream对象初始化一个Scanner,如sin。
然后就可以像手动输入一样使用sin读入文件中的信息。
用sin.hasnext()表示是否读到文件结尾。
对应的可以用PrintStream达到写入文件的效果,它要用一个FileOutputStream(或File file或String filename)作构造函数的参数,然后就可以像在控制台中显示数据一样写入文件。
二:DataInputStream对象实现文件的读入
其构造函数的参数也是InputStream,所以也可以用FileInputStream。
读取用DataInputStream.readInt()等即可,DataInputStream.readXX()会抛出EOFException()和IOException()。
并且在读到文件结尾时会返回-1。另外用DataInputStream.available()==0表示读到文件结尾。
写入文件可以用DataOutputStream对象,写入可以用DataOutputStream.writeXX()。
注意,这些writeXX()都是以二进制的方式写入的,所以直接打开文件显示的是乱码。要显示写入文件中的int等数据,要以String形式读入。虽然显示的是乱码,但是用DataInputStream的readXX()可以以int等类型读入。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/103077.html