Java 如何搜索文件?

Java 如何搜索文件?,java,Java,假设用户将输入他们的“ID#:1203103”,然后它将自动创建一个名为1203103.txt的文本文件。如何在文件目录中搜索文件名“1203103.txt” String id = scan.nextLine(); File file = new File(id+".txt"); FileWriter fileWrite = new FileWriter(file); BufferedWriter bufferedWriter = new BufferedWriter(fileWrite);

假设用户将输入他们的“ID#:1203103”,然后它将自动创建一个名为1203103.txt的文本文件。如何在文件目录中搜索文件名“1203103.txt”

String id = scan.nextLine();
File file = new File(id+".txt");
FileWriter fileWrite = new FileWriter(file);
BufferedWriter bufferedWriter = new BufferedWriter(fileWrite);
System.out.println("Enter the ID # to search: ");

你不需要搜索它。您已经知道它的名称,因此只需检查它是否存在,以及它是否是文件而不是目录:

File file = new File(fileName);

if (file.exists() && file.isFile()) {
    // ...
}
for (File file : folder.listFiles()) {
        if (!file.isDirectory()) 
             System.out.println(file.getName()); //Match here
}

如果文件不存在,代码将创建一个新文件。如果文件不存在将被删除,并在其所在位置创建一个空文件。在这两种情况下,您将拥有一个全新的空文件。没有要搜索的内容。

尝试此操作以搜索目录中的所有文件:

File file = new File(fileName);

if (file.exists() && file.isFile()) {
    // ...
}
for (File file : folder.listFiles()) {
        if (!file.isDirectory()) 
             System.out.println(file.getName()); //Match here
}

您可以使用
列表
(用于字符串结果)或
列表文件
(用于文件结果)浏览目录中的所有文件(文件)

试试这个:

public static void main(String[] args) throws IOException {
        String id = "kick";
        File file = new File(id + ".txt");
        FileWriter fileWrite = new FileWriter(file);
        BufferedWriter bufferedWriter = new BufferedWriter(fileWrite);

        File folder = new File("C:\\Users\\kick\\Documents\\NetBeansProjects\\JavaApplication191");

        // the list of files at specified folder
        File[] listOfFiles = folder.listFiles();

        // go through the list of files to see if you can find file was named kick
        for (int i = 0; i < listOfFiles.length; i++) {

            // gives you access to each elements of listofFiles array name
            String filename = listOfFiles[i].getName();
            if (filename.startsWith("kick")) {
                System.out.println("found");
            } else{
                System.out.println("not found');
            }
        }
    }
publicstaticvoidmain(字符串[]args)引发IOException{
String id=“kick”;
文件文件=新文件(id+“.txt”);
FileWriter fileWrite=新的FileWriter(文件);
BufferedWriter BufferedWriter=新的BufferedWriter(文件写入);
文件夹=新文件(“C:\\Users\\kick\\Documents\\NetBeansProject\\JavaApplication191”);
//指定文件夹中的文件列表
File[]listOfFiles=folder.listFiles();
//浏览文件列表,看看是否可以找到名为kick的文件
for(int i=0;i
你可以试试这个

import java.io.*;

class Main {
    public static void main(String[] args) {
        File dir = new File("C:"); //file directory
        FilenameFilter filter = new FilenameFilter() {
            public boolean accept(File dir, String name) {
                return name.startsWith("1203103"); //here is you file name starts with. Or you can use name.equals("1203103.txt");
            }
        };
     String[] children = dir.list(filter);
     if (children == null) {
         System.out.println("Either dir does not exist or is not a directory");
     }else {
         for (int i=0; i < children.length; i++) {
             String filename = children[i];
             System.out.println(filename);
         }
     } 
   }
}
import java.io.*;
班长{
公共静态void main(字符串[]args){
File dir=新文件(“C:”;//文件目录
FilenameFilter筛选器=新建FilenameFilter(){
公共布尔接受(文件目录,字符串名称){
return name.startsWith(“1203103”);//这是以开头的文件名。也可以使用name.equals(“1203103.txt”);
}
};
String[]children=dir.list(过滤器);
if(children==null){
System.out.println(“目录不存在或不是目录”);
}否则{
for(int i=0;i

希望这能有所帮助。

文件中的数据是什么?您要搜索哪种模式?一个单词、一行等。您的提示似乎是在输入后出现的,但当您向
bufferedWriter
写入内容,然后
close()时,将创建您的文件
it。至少要有点礼貌地告诉我你为什么否决了我,这样我才能纠正我的方式。我很好奇知道为什么?有点礼貌?无论如何,我会同意的:你的建议相当于在你已经知道你要打的号码的情况下拨打电话簿上的每个号码。@RobbyCornelissen我否决了你,我解释道为什么现在一切都很酷祝你好运:)一些情绪?我想你有些过火了。这是一个问答网站,不是《泰坦尼克号》的情人节放映。我告诉你我认为你的方法有什么问题。效率很低。@RobbyCornelissen我也这么想,所以我否决了你祝你好运,不要再骚扰我了你的答案是不合理的这是因为你没有足够的解释和来源。