1.java中,I/O是利用java.io包中的类和接口实现的。File是java.io包中最常用的类之一,它表示的是一个文件名(或目录名)。尽管File类提供一些方法来处理相应目录内的目录和文件,但是没有提供任何方法处理文件内容。也就是说,它没有提供任何途径来读写文件中包含的字节或字符。
2.java中,顺序文件I/O是通过流抽象完成的(随机存取文件I/O用RandomAccessFile类完成,但顺序I/O更为常见)。
3.在eclipse中给main()函数的args参数赋值:
选中项目主类右键在run as里选中 run configuration
选择第2个选项卡 (x)=Arguments
在Program arguments里输入参数,点下Apply,最后再点Run
例如我的命令行使用是:.+java
若为多个参数,多个参数之间用空格隔开即可。
例1:短小的程序,实现删除命令行上指定的一个文件或目录
4.FileInputStream读取源文件的字节,并使用FileOutputStream将这些字节复制到目标文件中。
例2程序中finally语句,可以确保流在程序退出之前得到了适当的关闭。
流对控制台进行读写:使用BufferedReader读取文本行,BufferedReader会从一个InputStreamReader读取单个字符,而InputStreamReader则从System.in(这是一个InputStream)读取字节,System.in会读取用户键盘上的按键。另外,此程序还利用System.out和System.err来显示文本输出,System.out和System.err均为PrintStream的实例。
例2:
5.java.util.zip包:压缩文件和目录
GZIP压缩格式压缩一个文件,ZIP归档和压缩格式来压缩目录中的文件。例3中,gzipFile()使用了GZIPOutputStream类,zipDirectory()则使用了ZipOutputStream和ZipEntry类,这些类都在java.util.zip包中。
例3:
6.过滤字符流
FilterReader是一个抽象类,它定义了一个null(空)过滤器;此过滤器从一个指定Reader读取字符,并且不做修改地加以返回。换句话说,FilterReader定义了所有Reader方法的无操作(no-op)实现。其子类必须至少覆盖两个read()方法来实现某种必要的过滤。有些子类可能还会覆盖其他方法。例3-6显示了RemoveHTMLReader,这是FilterReader的一个定制子类,它从一个流读取HTML文本,并过滤掉文本中的所有HTML标记,再加以返回。
此例中,我们在一个带3个参数的read()中实现了HTML标记过滤,然后利用这个较复杂的版本实现了一个无参数的read().
例4: