Angela Vinagrera
Angela Vinagrera

Reputation: 145

How to search a file?

Supposedly the user will enter their "ID #: 1203103" then after that it will automatically create a text file named 1203103.txt. How can I search the file name "1203103.txt" in the file directory?

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: ");

Upvotes: 4

Views: 139

Answers (7)

codebot
codebot

Reputation: 2656

You can try with this.

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);
         }
     } 
   }
}

Hope this helps.

Upvotes: 3

Madhawa Priyashantha
Madhawa Priyashantha

Reputation: 9900

Scanner scan=new Scanner(System.in);
System.out.println("Enter the ID # to search: ")
String id=scan.next();
File f= new File(id+".txt");
if(f.exists() && !f.isDirectory()) { 
    System.out.println("file exist");
}else{
    System.out.println("file doesn't exist");
}

Upvotes: 1

Kick Buttowski
Kick Buttowski

Reputation: 6739

Try this :

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');
            }
        }
    }

Upvotes: 0

Aakash
Aakash

Reputation: 1900

Try this to search through all the files in a directory:

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

Upvotes: 1

Robby Cornelissen
Robby Cornelissen

Reputation: 97331

You don't need to search for it. You already know its name, so just need to check if it exists, and optionally if it's a file and not a directory:

File file = new File(fileName);

if (file.exists() && file.isFile()) {
    // ...
}

Upvotes: 0

Martin Frank
Martin Frank

Reputation: 3474

you can browse all files within a directory (a file) using list (for String results) or listfiles (for file results)...

String directoryName = ...;
File directory = new File(directoryName);
File[] listOfAllFiles = directory.listFiles();
String[] listOfAllFileNames =  directory.list();

Upvotes: 1

Code-Apprentice
Code-Apprentice

Reputation: 83577

Your code will create a new file if the file doesn't already exist. If the file does exist, it will be erased and an empty file created in it's place. In both cases, you will have a brand new, empty file. There is nothing to search.

Upvotes: 1

Related Questions