java file实例化_Java开发之File类

File类

File类是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹。 File类保存文件或目录的各种元数据信息,包括文件名、文件长度、最后修改时间、是否可读、获取当前文件的路径名,判断指定文件是否存在、获得当前目录中的文件列表,创建、删除文件和目录等方法。

【案例 】创建一个文件

1 import java.io.*;2 classhello{3 public static voidmain(String[] args) {4 File f=new File("D:\\hello.txt");5 try{6 f.createNewFile();7 }catch(Exception e) {8 e.printStackTrace();9 }10 }11 }

【案例2】File类的两个常量

1 import java.io.*;2 classhello{3 public static voidmain(String[] args) {4 System.out.println(File.separator);5 System.out.println(File.pathSeparator);6 }7 }

此处多说几句:有些同学可能认为,我直接在windows下使用\进行分割不行吗?当然是可以的。但是在linux下就不是\了。所以,要想使得我们的代码跨平台,更加健壮,所以,大家都采用这两个常量吧,其实也多写不了几行。

【案例3】File类中的常量改写案例1的代码:

1 import java.io.*;2 classhello{3 public static voidmain(String[] args) {4 String fileName="D:"+File.separator+"hello.txt";5 File f=newFile(fileName);6 try{7 f.createNewFile();8 }catch(Exception e) {9 e.printStackTrace();10 }11 }12 }

【案例4】删除一个文件(或者文件夹)

1 import java.io.*;2 classhello{3 public static voidmain(String[] args) {4 String fileName="D:"+File.separator+"hello.txt";5 File f=newFile(fileName);6 if(f.exists()){7 f.delete();8 }else{9 System.out.println("文件不存在");10 }11

12 }13 }

【案例5】创建一个文件夹

1 /**

2 * 创建一个文件夹3 **/

4 import java.io.*;5 classhello{6 public static voidmain(String[] args) {7 String fileName="D:"+File.separator+"hello";8 File f=newFile(fileName);9 f.mkdir();10 }11 }

【案例6】列出目录下的所有文件

1 /**

2 * 使用list列出指定目录的全部文件3 **/

4 import java.io.*;5 classhello{6 public static voidmain(String[] args) {7 String fileName="D:"+File.separator;8 File f=newFile(fileName);9 String[] str=f.list();10 for (int i = 0; i < str.length; i++) {11 System.out.println(str[i]);12 }13 }14 }

注意使用list返回的是String数组,。而且列出的不是完整路径,如果想列出完整路径的话,需要使用listFiles.它返回的是File的数组。

【案例7】列出指定目录的全部文件(包括隐藏文件):

1 /**

2 * 使用listFiles列出指定目录的全部文件3 * listFiles输出的是完整路径4 **/

5 import java.io.*;6 classhello{7 public static voidmain(String[] args) {8 String fileName="D:"+File.separator;9 File f=newFile(fileName);10 File[] str=f.listFiles();11 for (int i = 0; i < str.length; i++) {12 System.out.println(str[i]);13 }14 }15 }

【案例8】判断一个指定的路径是否为目录

1 /**

2 * 使用isDirectory判断一个指定的路径是否为目录3 **/

4 import java.io.*;5 classhello{6 public static voidmain(String[] args) {7 String fileName="D:"+File.separator;8 File f=newFile(fileName);9 if(f.isDirectory()){10 System.out.println("YES");11 }else{12 System.out.println("NO");13 }14 }15 }

【案例9】递归搜索指定目录的全部内容,包括文件和文件夹

1 importjava.io.File;2

3 public classHello {4 /**

5 * 列出指定目录的全部内容6 */

7 public static voidmain(String[] args) {8 String fileName = "D:" +File.separator;9 File f = newFile(fileName);10 print(f);11 }12

13 private static voidprint(File f) {14 if (f != null) {15 if(f.isDirectory()) {16 File[] fileArray =f.listFiles();17 if (fileArray != null) {18 for (int i = 0; i < fileArray.length; i++) {19 print(fileArray[i]);20 }21 } else{22 System.out.println(f);23 }24 }25 }26 }27

28 }

10.RandomAccessFile类

该对象并不是流体系中的一员,其封装了字节流,同时还封装了一个缓冲区(字符数组),通过内部的指针来操作字符数组中的数据。该对象特点:

该对象只能操作文件,所以构造函数接收两种类型的参数:a.字符串文件路径;b.File对象。

该对象既可以对文件进行读操作,也能进行写操作,在进行对象实例化时可指定操作模式(r,rw)

注意:该对象在实例化时,如果要操作的文件不存在,会自动创建;如果文件存在,写数据未指定位置,会从头开始写,即覆盖原有的内容。可以用于多线程下载或多个线程同时写数据到文件。

【案例】使用RandomAccessFile写入文件

1 /**

2 * 使用RandomAccessFile写入文件3 **/

4 import java.io.*;5 classhello{6 public static void main(String[]args) throwsIOException {7 StringfileName="D:"+File.separator+"hello.txt";8 File f=newFile(fileName);9 RandomAccessFile demo=newRandomAccessFile(f,"rw");10 demo.writeBytes("asdsad");11 demo.writeInt(12);12 demo.writeBoolean(true);13 demo.writeChar('A');14 demo.writeFloat(1.21f);15 demo.writeDouble(12.123);16 demo.close();17 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值