从File类开始IO系统介绍

原创 2004年09月16日 08:39:00
无论学习那种语言都难免要接触到文件系统,要经常和文件打交道。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...

从File类开始IO系统介绍

无论学习那种语言都难免要接触到文件系统,要经常和文件打交道。java当然也不例外,有些网友觉得IO的设计很烦琐,有的时候我也有这样的感觉,其实用的熟练了,倒是觉得这个东西还是挺方便的。在介绍Java ...
  • dingrui88888171
  • dingrui88888171
  • 2014年05月23日 11:22
  • 167

IO流_File类的概述和构造方法

package cn.itcast_01; import java.io.File; /* * 我们要想实现IO的操作,就必须知道硬盘上文件的表现形式。 * 而Java就提供了一个类File供...
  • L1585931143
  • L1585931143
  • 2017年01月18日 21:49
  • 1373

Java IO系统——File类

File类具有一个欺骗性的名字,通常你会认为它对应的是一个文件,但事实并非如此。它既可以代表一个特定的文件目录,也可以代表一个目录内一系列文件的名字,FilePath似乎是一个更好的名字。它代表了与平...
  • zjx86320
  • zjx86320
  • 2016年04月25日 21:51
  • 361

java.io常见流/java.io.file文件操作大全

http://wosyingjun.iteye.com/blog/1885786 今天学习了下java的IO流,这里做个总结,方便查找。   InputStream/OutputSrteam Inp...
  • zzy7075
  • zzy7075
  • 2016年08月02日 15:57
  • 664

IO流(一):File和递归

一、File (一)概述 1、File: 1)文件和目录(文件夹)路径名的抽象表示形式 2)注意: 可以表示文件夹与文件,即路径与文件 抽象概念,即路径与文件是否存在不确定 2、构造方法 1)Fil...
  • u012228718
  • u012228718
  • 2015年05月13日 20:39
  • 1004

IO操作、File类概述和构造方法

File类概述和构造方法 File类的概述 文件和目录路径名的抽象表示形式 构造方法 public File(String pathname) public File(String ...
  • herion_123
  • herion_123
  • 2017年02月21日 00:13
  • 747

IO流__【File类常见操作】【文件列表】【递归】

File类 文件和目录路径名的抽象表示形式。 用来将文件或者文件夹封装成对象;方便对文件与文件夹的属性信息进行操作。 File对象可以作为参数传递给流的构造函数。 了解File...
  • ie800
  • ie800
  • 2013年12月27日 23:35
  • 1488

IO复习之File类

File类 的概述 File就是一个路径,这个路径可以是文件也可以是文件夹       路径又分为绝对路径和相对路径       绝对路径:从盘符开始 ,是一个固定路径       相对路径:对于某个...
  • li_wei_song
  • li_wei_song
  • 2015年04月01日 11:43
  • 195

io操作之File类

package com.ly.io.file; import java.io.File; import java.io.FileFilter; import java.io.IOException;...
  • wdergouzi
  • wdergouzi
  • 2017年08月04日 19:59
  • 41

Java_io体系之概念与整体结构——02

Java_io体系之概念与整体结构——02 一:写给自己、可无视        刚从校门走出来时、觉得先上手工作、现在基本能打打酱油的、没有一开始进入社会的那种彷徨了、回头想想自己的程序猿之路。接触j...
  • chenghuaying
  • chenghuaying
  • 2013年11月22日 22:56
  • 3734
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从File类开始IO系统介绍
举报原因:
原因补充:

(最多只允许输入30个字)