快速业务通道

从File类开始IO系统介绍 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20

从File类开始IO系统介绍

时间:2011-01-24

无论学习那种语言都难免要接触到文件系统,要经常和文件打交道。Java当然也不例外,有些网友觉得IO的设计很烦琐,有的时候我也有这样的感觉,其实用的熟练了,倒是觉得这个东西还是挺方便的。在介绍Java IO之前首先介绍一下非常重要的一个类File。

在看到这个类的名字后你一定认为它代表一个文件,事实上这样认为并不准确,因为Java中的File类可以代表文件也可以代表目录。在API doc中说明了这一点,同时把File用abstract pathname来代表。不过想想目录不也就是特殊的文件吗?

File的使用非常的简单,它有四个构造函数:

File(String parent,String child) File(File parent,String child) File(URI uri) File(String pathname)

其中前面两个可以让我们在某个已知特定的目录下新建文件或者目录,后面两个我们可以通过pathname或者URI新建文件或者目录。有一点需要注意,File虽然是一个系统无关的代表,但是pathname的表示是和系统相关的,比如UNIX下"/"表示root目录,而windows下通常用盘符来表示。比如绝对路径C:\helloworld\mingjava,如果是相对路径的话则不以"/"开头,一般相对路径是相对当前目录的。当我们创建一个File的时候可以通过exists()方法判断它是否存在,如果不存在我们可以选择是创建为文件还是创建为目录。例如

File file = new File("hehe");  if(!file.exists())  {   file.mkdir();  } for(int i=0;i <5;i++)   {   File listFile = new File(nextFile,"ming"+i+".txt");   if(!listFile.exists())   {    listFile.createNewFile();   }   }

如果我们已经知道一个File对象,希望在他的目录之下新建文件,那么就可以使用第一个构造器了。比如

File nextFile = new File(file,"ming\\hehe");  if(!nextFile.exists())  {   nextFile.mkdirs();  }

注意创建多层目录的时候要用mkdirs()。我们还可以列举出一个目录下的文件列表,通过list()方法可以得到一个String[]类型的数组,这就是目录下的文件名称。

String[] list = nextFile.list();   for(int j = 0;j<list.length;j++)   {   System.out.println(list[j]);   }

从File类开始IO系统介绍(2)

时间:2011-01-24

File的使用并不复杂,如果有问题多参考一下API doc一般就可以解决了,下面是我写的一个小例子,说明如何使用File文件。

import java.io.*; import java.net.*; public class TestFile { public static void main(String[] args) throws IOException {  File file = new File("hehe");  if(!file.exists())  {   file.mkdir();  }  File nextFile = new File(file,"ming\\hehe");  if(!nextFile.exists())  {   nextFile.mkdirs();  }  System.out.println(nextFile.getParent());  if(nextFile.isDirectory())  {   File newFile = new File(nextFile,"ming.txt");   if(!newFile.exists())   {   newFile.createNewFile();   System.out.println(newFile.getName());   System.out.println(newFile.getAbsoluteFile());   }   for(int i=0;i <5;i++)   {   File listFile = new File(nextFile,"ming"+i+".txt");   if(!listFile.exists())   {    listFile.createNewFile();   }   }   String[] list = nextFile.list();   for(int j = 0;j<list.length;j++)   {   System.out.println(list[j]);   }  } } }

输出结果为:

hehe\ming ming.txt ming0.txt ming1.txt ming2.txt ming3.txt ming4.txt Press any key to continue...

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号