开发者

how to read directories in java

simple: how do i read the contents of a directory in Java, and save that data in an array or variable of some sort? secondl开发者_如何学Goy, how do i open an external file in Java?


You can use java IO API. Specifically java.io.File, java.io.BufferedReader, java.io.BufferedWriter etc.

Assuming by opening you mean opening file for reading. Also for good understanding of Java I/O functionalities check out this link: http://download.oracle.com/javase/tutorial/essential/io/

Check the below code.

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class FileIO 
{
    public static void main(String[] args) 
    {
        File file = new File("c:/temp/");

        // Reading directory contents
        File[] files = file.listFiles();

        for (int i = 0; i < files.length; i++) {
            System.out.println(files[i]);
        }

        // Reading conetent

        BufferedReader reader = null;

        try {
            reader = new BufferedReader(new FileReader("c:/temp/test.txt"));
            String line = null;

            while(true)
            {
                line = reader.readLine();
                if(line == null)
                    break;

                System.out.println(line);
            }
        }catch(Exception e) {
            e.printStackTrace();
        }finally {
            if(reader != null)
            {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}


You can use a class java.io.File to do that. A File is an abstract representation of file and directory pathnames. You can retrieve the list of files/directories within it using the File.list() method.


There's also the Commons IO package which has a variety of methods for manipulating files and directories.

import java.io.File;
import java.io.IOException;
import java.util.Collection;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.FileFilterUtils;

public class CommonsIO 
{
    public static void main( String[] args ) 
    {
        // Read the contents of a file into a String
        try {
            String contents = FileUtils.readFileToString( new File( "/etc/mtab" ) );
        } catch (IOException e) {
            e.printStackTrace();
        }

        // Get a Collection of files in a directory without looking in subdirectories
        Collection<File> files = FileUtils.listFiles( new File( "/home/ross/tmp" ), FileFilterUtils.trueFileFilter(), null );

        for ( File f : files ) {
            System.out.println( f.getName() );
        }
    }
}


public class StackOverflow {

    public static void main(String[] sr) throws IOException{
        //Read a folder and files in it
        File f = new File("D:/workspace");
        if(!f.exists())
            System.out.println("No File/Dir");
        if(f.isDirectory()){// a directory!
            for(File file :f.listFiles()){
                System.out.println(file.getName());
            }
        }

        //Read a file an save content to a StringBuiilder
        File f1 = new File("D:/workspace/so.txt");
        BufferedReader br = new BufferedReader(new FileReader(f1));
        StringBuilder sb = new StringBuilder();
        String line = "";
        while((line=br.readLine())!=null)
            sb.append(line+"\n");

        System.out.println(sb);
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜