24.java- File类的常用方法:遍历目录里的文件

遍历目录
通过遍历目录可以在指定的目录中查找文件,或者显示所有的文件列表。

1.File 类的 list()

File 类的 list() 方法提供了遍历目录功能,该方法有如下两种重载形式。

  1. String[] list()
    该方法表示返回由 File 对象表示目录中所有文件和子目录名称组成的字符串数组,如果调用的 File 对象不是目录,则返回 null
    提示:list() 方法返回的数组中仅包含文件名称,而不包含路径。但不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。
  2. String[] list(FilenameFilter filter)
    该方法的作用与 list() 方法相同,不同的是返回数组中仅包含符合 filter 过滤器的文件和目录,如果 filter 为 null,则接受所有名称。

在这里插入图片描述

public class readbyte {

    public static void main(String[] args)  {

        File folder = new File("./target");
        String fileList[] = folder.list();

        for (int i = 0; i < fileList.length; i++) { // 遍历返回的字符数组
            System.out.println(fileList[i]);
        }
}

输出

在这里插入图片描述

在这里插入图片描述

2. File类的listFiles()

listFiles()方法是File类的一部分。如果路径名是目录,则该函数返回一个File数组,表示给定抽象路径名中的文件,否则返回null。该函数是重载函数。其中一个函数没有任何参数,第二个函数将FilenameFilter对象作为参数,第三个函数将FileFilter对象作为参数

函数签名:

public File[] listFiles()
public File[] listFiles(FilenameFilter f)
public File[] listFiles(FileFilter f)

函数语法:
file.listFiles()
file.listFiles(filter)
参数:该函数是重载函数

该函数之一没有任何参数,
第二个函数将FilenameFilter对象作为参数,
第三个函数将FileFilter对象作为参数
返回值:该函数返回一个File数组,如果文件对象是一个文件,则返回null值。

异常:如果不允许该函数对该文件进行读取访问,则此方法将引发Security Exception

下面的程序将说明listFiles()函数的用法

  • 例1
    查找给定目录中的所有文件和目录

在这里插入图片描述

import java.io.File;

public class readbyte {

    static String dirpath = "./test.txt";
    public static void main(String[] args)  {

        File folder = new File("./target");
        File[] listOfFiles = folder.listFiles();

        // Display the names of the files
        for (File f : listOfFiles) {
            String fileName = f.getName();
            System.out.println(fileName);
        }
        //这种方法也可以
        for (int i = 0; i < listOfFiles.length; i++) {
            System.out.println(listOfFiles[i].getName());
        }
    }
}

String getName()	
返回表示当前对象的文件名或路径名(如果是路径,则返回最后一级子路径名)

输出
在这里插入图片描述

在这里插入图片描述

  • 例2
    在给定目录中查找名称以“ (0,5)”开头的所有文件

在这里插入图片描述

import java.io.File;
import java.io.FilenameFilter;

public class readbyte {
	 public static void main(String[] args)  {
 
	  File folder = new File("./target");

        // Create a FilenameFilter
        FilenameFilter filter = new FilenameFilter() {

            public boolean accept(File f, String name)
            {
                return name.startsWith("(0,5)");
            }
        };

        File[] listOfFiles = folder.listFiles(filter);

        System.out.println("Files are:");

        // Display the names of the files
        for (File f : listOfFiles) {
            String fileName = f.getName();
            System.out.println(fileName);
        }
	}
}

输出
在这里插入图片描述

  • 例3
    查找给定目录中的所有文件和目录,它们都是文本文件。
import java.io.File;
import java.io.FileFilter;
public class readbyte {


    public static void main(String[] args)  {

        File folder = new File("./target");

        // Create a FileFilter
        FileFilter filter = new FileFilter() {

            public boolean accept(File f)
            {
                return f.getName().endsWith("txt");
            }
        };

        // Get all the names of the files present
        // in the given directory
        // which are text files
        File[] listOfFiles = folder.listFiles(filter);

        System.out.println("Files are:");

        // Display the names of the files
        for (File f : listOfFiles) {
            String fileName = f.getName();
            System.out.println(fileName);
        }

    }
}

输出

在这里插入图片描述

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WinForm 是一种程序开发框架,可以使用它来创建 Windows 图形用户界面应用程序。在 WinForm 应用程序中,我们可以通过代码将 List 的内容保存到 txt 文件中。 首先,我们需要在 WinForm 应用程序中创建一个 List,并向其中添加一些数据。比如,我们可以创建一个 List<string> 型的变量,然后使用 Add 方法添加一些字符串数据。 接下来,我们可以使用 System.IO 命名空间中的 File 的 WriteAllLines 方法将 List 中的数据保存到 txt 文件中。这个方法需要两个参数:要保存的 txt 文件的路径,以及包含数据的 List 对象。我们可以使用 SaveFileDialog 对象来选择要保存的 txt 文件的路径,然后将 List 对象作为参数传递给 WriteAllLines 方法。 最后,我们可以使用 MessageBox.Show 方法在界面上显示保存成功的提示信息。 以下是一个示例代码: ```csharp using System; using System.Collections.Generic; using System.IO; using System.Windows.Forms; namespace WinFormSaveListToTxt { public partial class Form1 : Form { List<string> dataList = new List<string>(); public Form1() { InitializeComponent(); } private void buttonSave_Click(object sender, EventArgs e) { // 向 List 中添加一些数据 dataList.Add("数据1"); dataList.Add("数据2"); dataList.Add("数据3"); // 弹出文件保存对话框,选择要保存的 txt 文件路径 SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "文本文件|*.txt"; if (saveFileDialog.ShowDialog() == DialogResult.OK) { // 将 List 中的数据保存到 txt 文件File.WriteAllLines(saveFileDialog.FileName, dataList); // 显示保存成功的提示信息 MessageBox.Show("保存成功!"); } } } } ``` 以上就是使用 WinForm 将 List 保存为 txt 文件的简单实现方法。通过创建 List,并使用 File 的 WriteAllLines 方法保存数据,在界面上提供保存文件的对话框以及保存成功的提示信息,可以方便地实现这一功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值