Java I/O学习(一)


什么是I/O?


I/O就是数据输入输出数据流,也称作数据流。


Java I/O操作主要指的是使用Java进行输入、输出操作,Java中的所有操作类都存放在Java.io包中,在使用时需要导入此包。


File、 OutputStream、 InputStream、 Writer和 Reader,1个接口是 Serializable。


File类


使用File类可以实现创建和删除文件等常用的操作。要使用FIle类,需要首先观察File类的构造方法,此类的构造方法如下所示:


public File(String pathname)


在实例化File类时必须设置好路径。如果要使用一个File类,则必须向File类的构造方法中传递一个文件路径,加入要操作E盘下的文件test.txt,则路径必须写成“E:\\test.txt”,其中“\\”表示一个“\”。要操作文件,还需要使用File类中定义的若干方法。


  1. 文件的创建和删除

可以使用File类创建一个文件对象,通常使用3种构造方法来创建文件对象


  1. File(String pathname)

该构造方法通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。语法格式如下:


new File(String pathname)


pathname:是指路径名称(包含文件名)


File file = new File("d:/1.txt");


  1. File(String parent,String child)

该构造方法根据定义的父路径和子路径字符串(包含文件名)创建一个新的File对象。语法格式如下:


new FIle(String parent,String child)


parent:父路径字符串


child:子路径字符串


  1. File(File f,String child)

该构造方法根据parent抽象路径名和child路径名字符串创建一个新的File实例。语法格式如下:


new File(File f,String child)


f:父路径对象


child:子路径字符串


使用File类创建一个文件对象,语法格式如下:


File file = new File("D:/myword","word.txt");


如果D:/myword目录中没有名称为Word的文件,File类对象可以通过调用createNewFile()方法创建一个名称为Word.txt的文件;如果word.txt文件存在,可以通过文件对象的delete()方法将其删除。


例:




java id用Integer还是Long java的--i_I/O流



  1. 获取文件信息

File类提供了很多方法用于获取文件本身的一些信息,File类的常用方法如下:


java id用Integer还是Long java的--i_字符串_02



例:获取E盘中文件夹下的word.txt文件的文件名、文件长度,并判断该文件是否为隐藏文件。





java id用Integer还是Long java的--i_字符串_03

                输出结果:

java id用Integer还是Long java的--i_I/O流_04

  1. 创建文件夹

除了可以创建文件外,在Java中也可以使用File类创建一个指定文件夹,此功能可以使用方法mkdir()完成。


java id用Integer还是Long java的--i_Java_05

运行结果:



java id用Integer还是Long java的--i_Java_06



关于java的File.separator


在Windows下的路径分隔符和Linux下的路径分隔符是不一样的,当直接使用绝对路径时,跨平台会报出:No such file or diretory 的异常。


比如说要在temp目录下建立一个test.txt文件,在Windows下应该这么写:


File file = new File("C:\temp\test.txt");


在Linux下则是这样的:


File file = new File("/temp/test.txt");



如果要考虑到跨平台,则最好是这样写:


File file = new File("C:"+File.separator+"temp"+File.separator+"test.txt");



  1. 使用list()方法列出一个目录中的全部内容

假设给出了一个具体的目录,通过File类可以直接列出这个目录中的所有内容。在File类中定义了如下两个方法可以列出文件夹中的内容。


public String[] list();//列出全部名称,返回一个字符串数组


public File[] listFiles();//列出完整路径,返回一个File对象数组



例:



java id用Integer还是Long java的--i_字符串_07


运行结果:



java id用Integer还是Long java的--i_字符串_08



  1. 判断一个给定的路径是否是目录

在Java编程应用中,可以直接使用File类中的方法isDirectory()判断某指定的路径是否是一个目录。


例:



java id用Integer还是Long java的--i_Java_09


运行结果:



java id用Integer还是Long java的--i_File_10