从File类开始java IO 系统介绍
在看到这个类的名字后你一定认为它代表一个文件,事实上这样认为并不准确,因为Java中的File类可以代表文件也可以代表目录。在API doc中说明了这一点,同时把File用abstract pathname来代表。不过想想目录不也就是特殊的文件吗?
无论学习那种语言都难免要接触到文件系统,要经常和文件打交道。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...
For Example
import java.io.*;
public class TestFile
{
TestFile(){}
public static void main(String[] args)
{
File file = new File("F:\javawork","HEHE");
if(!file.exists())
{
file.mkdir();
}
File nextfile = new File(file,"ming\hehe");
if(!nextfile.exists())
{
nextfile.mkdirs();
}
System.out.println("...........getParent"+nextfile.getParent());
for(int i =0;i < 5;i++ )
{
File listFile = new File(nextfile,"ming"+i+".txt");
try{
if(!listFile.exists())
{
listFile.createNewFile();
}}catch(IOException e)
}
}
};
- · 四十二天学英语的模范短文
- · 一位老工程师给年轻人的“十大忠告”
- · native关键字说明。
- · 每一个软件开发人员绝对必须掌握的关于 Unico…
- · 关闭Linux中响铃的方法
- · BIND 高级特性-- 动态更新
- · 全国主要城市dns服务器列表
- · dns的原理
- · 简单配置dns过程
- · 安装设置动态域名QDNS
- · 在as4上配置dns(1)
- · 10进制转换为2,8,16进制.[bash]
- · DNS MX记录一定要放在A记录之前
- · 一个自动ftp的脚本
- · dns全攻略
- · 这个帖彻底提高了我的DNS认识
- · 全国DNS地址查询
- · Windows 2000 Server 中 DNS 的实现
- · bind9做泛域名和次级域名解析的例子
- · DNS的全称及组成
- · dig命令的使用.
- · 在Windows Server 2003中为Web站点配置DNS记录
- · 在WindowsServer2003中为DNS配置Internet访问
- · 架设DNS服务器要谨慎
- · 问答之间,DNS疑惑灰飞烟灭
- · 用Windows Server 2003搭建安全文件服务器(2)
- · 用Windows Server 2003搭建安全文件服务器(1)
- · Win2003上网配置DNS的技巧
- · Windows 2000中任务时间表的帐号问题
- · WIN2000服务器安全配置(四)
- · WIN2000服务器安全配置(三)
- · WIN2000服务器安全配置(二)
- · WIN2000服务器安全配置(一)
- · 在Windows XP家庭版安装IIS
- · 个人服务器架设全攻略(17)
- · 个人服务器架设全攻略(15)
- · 个人服务器架设全攻略(14)
- · 个人服务器架设全攻略(81)
