`
djsl6071
  • 浏览: 592167 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

从File类开始IO系统介绍

阅读更多
无论学习那种语言都难免要接触到文件系统,要经常和文件打交道。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...

 
Java.io.File类操作心得
 
File类API为我们提供了一个通用的抽象文件,用于操作计算机中的文件和目录,采用Unix的思想,目录也被看作是一种文件,所以全部用File类来处理。
 
创建一个File类的实例,其初始化值就意味着加载待处理的相应文件(或目录),比如:
 
File objDir = new File(“D:/XP/test”);
File objFile = new File(“D:/XP/test/filename.txt”);
注意:可以统一使用 / 来表示目录,Unix系统如此,Windows系统还可以使用 \\
下面用这两个实例来分别创建目录和文件:
 
创建目录有两个方法:
1. objDir.mkDir(); 返回一个boolean表示创建成功与否,只能在已有目录下创建(子目录)
2. objDir.mkDirs();返回一个boolean表示创建成功与否,即使父目录不存在也能够创建。例如:当 File objDir = new File(“ hehe/dir ”); 表示在当前相对目录下再创建两级目录hehe/dir,这时使用mkDirs()方法才行,而mkDir()方法失败。注意:如果new File(“/hehe/dir”);表示从当前盘符的根目录(D:/)创建,由于这个根目录总是存在的,所以mkDir()方法也能创建成功,却往往不是我们所要的结果。
 
创建了目录就可以创建文件了,如果在不存在的目录下创建文件会抛出异常。
objFile. createNewFile ();返回一个boolean表示创建成功与否,这样就创建了一个空文件:D:/XP/test/filename.txt
下面可以查看文件的名称、大小、路径、父目录、可读可写状态、判断文件是否存在、是否是一个目录或是文件、获取文件最后修改的时间、修改文件名,删除文件或目录等。
方法名如下:
System.out.println("绝对路径:" + objFile.getAbsolutePath());
System.out.println("相对路径:" + objFile.getPath());
System.out.println("父目录:" + objFile.getParent());
System.out.println("是否可读:" + objFile.canRead());
System.out.println("是否可写:" + objFile.canWrite());
System.out.println("文件长度:" + objFile.length());
//要使用文件所在的目录来取里面的list,再通过循环来进行处理
System.out.println("所在目录文件列表:" + (int) (objDir.list().length));
System.out.println("文件名:" + objFile.getName());
System.out.println("文件存在否:" + objFile.exists());
System.out.println("文件删除成功否:" + objFile.delete());
注:要删除一个目录objDir.delete();必须要目录为空才行,如果目录不为空,可以使用objDir.list()获取当前目录下的文件列表String[],循环将其中的文件删除后继而删除目录
分享到:
评论

相关推荐

    2022年从File类开始java IO 系统介绍域名服务器教程.docx

    File 类在 Java 中是操作文件和目录的核心类,它是 IO 流系统的基础。File 类不仅可以表示文件,还能表示目录(书目),它采用抽象路径名(abstract pathname)的方式来表示文件或目录的位置。File 类提供了丰富的...

    Unity3D FileInfo类和File类的使用

    Unity3D FileInfo类和File类是 Unity3D 中的两个重要的文件操作类,它们都是System.IO 命名空间下的类,提供了文件操作的功能。下面我们将详细介绍这两个类的使用和区别。 FileInfo类是 Unity3D 中的一个实例类,...

    java开发之File类详细使用方法介绍

    Java中的File类是Java IO包(java.io)中的核心类,用于处理文件和文件系统相关的操作,如文件的创建、删除、重命名以及查询文件属性等。File类并不直接涉及文件内容的读写,而是专注于文件对象的元数据管理。 1. *...

    Java基础IO流之File类的使用

    Java基础IO流之File类的使用 File类是Java中的一个基础类,用于处理文件和目录操作。下面是File类的使用详解: File类的作用 File类的作用是提供一个抽象表示形式,用于描述文件和目录的路径,并提供了一些基本的...

    java-io-file类笔记

    Java中的`java.io.File`类是用于操作文件和目录的核心工具。它不涉及实际的数据流操作,而是专注于文件和文件系统的元数据。`File`对象提供了丰富的功能,包括创建、删除、重命名文件以及检查文件或目录的存在状态,...

    系统IO跟标准IO的连续与区别

    在本文中,我们将详细介绍系统 IO 和标准 IO 的定义、特点、函数调用及应用场景。 一、系统 IO 和标准 IO 的定义 系统 IO 又称文件 IO 或低级磁盘 IO,是一种不带缓存的 IO 操作,它提供了基本的 IO 服务,特定于 ...

    java中File相关的类和IO流的知识

    Java中的File类是用于处理文件和目录的基本工具,它提供了许多方法来操作文件系统。File类是Java.io包的一部分,是进行输入/输出操作的基础。在这个主题中,我们将深入探讨File类以及与之相关的IO流。 首先,File类...

    java file类的方法

    本文将详细介绍`File`类中的常用构造方法及方法,并给出相应的说明。 #### 二、构造方法 `File`类中有三种主要的构造方法: 1. **File(File dir, String name)** - 创建一个新的`File`实例,代表由指定的`File`...

    java.io包中的File类.doc

    `java.io.File`类是Java标准库中的一个重要组成部分,它提供了对文件系统进行基本操作的能力。`File`类位于`java.io`包中,它是唯一代表磁盘文件本身的对象。通过`File`类,开发者可以轻松地创建、删除文件或目录,...

    fileIO_sample.c_fileI/O_

    下面将详细介绍C语言中的文件I/O操作,并通过`fileIO_sample.c`这个文件名推测可能包含的代码结构和知识点。 在C语言中,文件I/O主要通过标准库函数`stdio.h`中的接口来完成。以下是一些关键知识点: 1. **文件...

    javaIO流File类的使用共3页.pdf.zip

    Java IO流中的File类是Java标准库中处理文件操作的核心类,它位于`java.io`包下。File类主要用于文件和目录的创建、删除、重命名等操作,以及获取文件的相关信息,如路径、大小、最后修改时间等。在Java程序中,File...

    彻底明白java的io系统

    Java的IO系统是Java编程中的核心部分,它允许程序与外部世界进行数据交换,包括读取文件、写入文件、网络通信以及设备交互等。理解并掌握Java的IO系统对于任何Java开发者,尤其是新手,都是至关重要的。在这个实例...

    java file,java读取txt文档

    在Java中,`java.io.File`类是用于操作文件和目录的基本工具。它可以用来创建、删除、重命名文件,以及获取文件的属性信息,如大小、路径、最后修改时间等。 要读取一个TXT文档,我们需要使用Java的I/O流。这里主要...

    Java IO 工具类大全

    以上就是Java IO工具类的详细介绍,理解并熟练运用这些工具,将极大提升你在处理数据输入输出时的效率和灵活性。在实际编程中,根据需求选择合适的工具类,结合Java的异常处理机制,可以编写出稳定可靠的IO程序。

    fileio_test_FileIo_TheTest_

    本文将深入探讨“fileio_test_FileIo_TheTest_”这个主题,它涉及Verilog中的文件输入/输出(File I/O)操作,这是在验证和调试过程中非常重要的一个方面。 在Verilog中,File I/O允许我们读取和写入文件,这对于...

    批处理文件系统(java后端文件类IO流相关)

    下面将详细介绍如何利用Java的File类和IO流进行批处理文件操作。 首先,Java中的`java.io.File`类是文件和目录路径名的抽象表示形式。通过File对象,我们可以创建、删除、重命名文件,以及获取文件的基本属性,如...

    FileIO.rar_辅助

    标题中的"FileIO.rar_辅助"表明这是一个与文件输入输出(File Input/Output,简称File IO)相关的资源,可能是为了辅助理解和学习File IO操作而创建的一个压缩包。描述提到“是一个记事本,很好用。没有用任何的辅助...

    早期moto的io.File包

    7. **文件监控**:从Java 7开始,`io.File`引入了`WatchService`接口,允许程序监听文件系统事件,如文件的创建、删除或修改。这对于实现文件监控或实时备份等功能非常有用。 在moto手机的早期开发环境中,由于硬件...

    Java学生管理系统GUI+IO流

    Java学生管理系统GUI+IO流是一个适合初学者的项目,它主要展示了如何在没有数据库支持的情况下,利用Java的图形用户界面(GUI)和输入输出(IO)流来实现一个简易的学生和教师信息管理功能。这个系统可能包括账户...

Global site tag (gtag.js) - Google Analytics