как читать каталоги в Java - PullRequest
4 голосов
/ 30 апреля 2011

просто: как мне прочитать содержимое каталога в Java и сохранить эти данные в массиве или какой-либо переменной?во-вторых, как мне открыть внешний файл в Java?

Ответы [ 4 ]

11 голосов
/ 30 апреля 2011

Вы можете использовать Java IO API. В частности java.io.File, java.io.BufferedReader, java.io.BufferedWriter и т. Д.

Предполагая, что под открытием вы подразумеваете открытие файла для чтения. Также для хорошего понимания функций ввода / вывода Java, проверьте эту ссылку: http://download.oracle.com/javase/tutorial/essential/io/

Проверьте код ниже.

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();
                }
            }
        }
    }
}
2 голосов
/ 30 апреля 2011

Существует также пакет Commons IO , который имеет различные методы для работы с файлами и каталогами.

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() );
        }
    }
}
2 голосов
/ 30 апреля 2011

Вы можете использовать класс java.io.File , чтобы сделать это. Файл - это абстрактное представление имен файлов и каталогов. Вы можете получить список файлов / каталогов внутри него, используя метод File.list () .

1 голос
/ 30 апреля 2011
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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...