分享
 
 
 

从File类开始IO系统介绍

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

无论学习那种语言都难免要接触到文件系统,要经常和文件打交道。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的使用并不复杂,如果有问题多参考一下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...

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有