Java中的文件读写的几种方法,以及判断文件结尾

Posted on 2011-10-26 20:00  真实的幻术师  阅读(2239)  评论(0)    收藏  举报

一:用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等类型读入。

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3