работать с текстовыми файлами в Java - PullRequest
2 голосов
/ 27 октября 2010

Я только начал изучать Java после C ++. но пока ничего не ясно. особенно работа с занятиями.

подскажите пожалуйста, как открыть файл для чтения или записи? желательно предоставить код полностью.

Спасибо. извините за плохой английский.

upd: я начал изучать Java час назад, но еще не написал работающую программу.

Спасибо всем за ответы!

Ответы [ 5 ]

6 голосов
/ 27 октября 2010

Возможно, вам следует сначала прочитать часть ввода-вывода руководства Sun Java.

например. Чтение, запись и создание файлов

2 голосов
/ 27 октября 2010

Best u пройти через полный справочник Java .... Я даю пример программы, я надеюсь, что это поможет вам ....

public class Abc {
    public static void main(String[] args) {
        Abc.modemp();
    }
    public static void modemp() {
        String detail;
        try {
            BufferedReader empdtil = new BufferedReader(new FileReader("File Location"));
            while ((detail = empdtil.readLine()) != null) {
                System.out.println(detail);
            }
            empdtil.close();
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }
}
2 голосов
/ 27 октября 2010

Пусть Apache Commons будет вашим другом. Есть класс FileUtils , который выполняет эту работу.

1 голос
/ 27 октября 2010

Вот большой набор учебников для изучения Java: Учебники Java .

Учебное пособие по вводу / выводу см. В главе Основные операции ввода / вывода из этих учебников.

0 голосов
/ 03 ноября 2010

Я предлагаю вам избегать BufferedReader для чтения текста InputStream: readLine использует символ eol и не подлежит восстановлению (возможно, \ n, \ r, \ n \ r, ...).Если вы хотите сохранить символы eol, вам нужно работать напрямую с InputStreamReader.Вот что я использую:

/**
 * Read the open UTF-8 text InputStream to the end and close.
 * @param stream the open input stream
 * @return the text
 */
public static String readText(InputStream stream) {
    return readText(stream, "UTF-8");
}

/**
 * Read the open text InputStream to the end and close.
 * @param stream the open text stream, not null
 * @param charsetName the charset (e.g. UTF-8), must be valid
 * @return the text
 * @throws RuntimeException wrapping UnsupportedEncodingException (if charsetName invalid) or IOException (if problem reading stream)
 */
public static String readText(InputStream stream, String charsetName) {
    InputStreamReader reader = null;
    try {
        reader = new java.io.InputStreamReader(stream, charsetName);

        StringBuilder response = new StringBuilder();
        char[] buffer = new char[4 * 1024];
        int n = 0;
        while (n >= 0) {
            n = reader.read(buffer, 0, buffer.length);
            if (n > 0) {
                response.append(buffer, 0, n);
            }
        }

        return response.toString();
    }
    catch (UnsupportedEncodingException e) {
        throw new RuntimeException(e);
    } catch (IOException e) {
        throw new RuntimeException(e);
    } finally {
        close(stream, reader);
    }
}

/**
 * Close the closeable.
 * @param obj the closeable, may be null
 * @return true if successfully closed
 */
public static boolean close(Closeable obj) {
    if(obj != null) {
        try {
            obj.close();
            return true;
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
    }
    else
        return false;
}

/**
 * Close all the closeables
 * @param objs the closeables, the list may not be null but individual items may
 * @return true if all were closed successfully
 */
public static boolean close(Closeable... objs) {
    boolean success = true;
    for(Closeable c : objs)
        success = success && close(c);

    return success;
}

Есть несколько способов получить InputStream для файла, один из них - использовать один из конструкторов FileInputStream.

Запись в файл немного проще,с использованием PrintWriter:

    File file = new File("C:\\file.txt");    
    PrintWriter writer = null;
    try {
        writer = new PrintWriter(new FileWriter(file, true));
        writer.print("hello ");
        writer.println("world");
        writer.print(12.23);
    } catch (IOException e) {
        throw new RuntimeException(e);
    } finally {
        close(writer);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...