Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > РАбота с текстовым файлом


Автор: Berliner 25.5.2005, 09:56
Здраствуйте - хочу простой простой пример работы с текстовым файлом запись в файл строки(Привет) чтение строки. Спасиб smile smile

Автор: Domestic Cat 25.5.2005, 09:57
http://java.sun.com/docs/books/tutorial/essential/io/

Автор: Berliner 25.5.2005, 13:24
Интересно тут! Вопрос на русском ответ- ссылка на английском. Большая и основательная

Автор: AntonSaburov 25.5.2005, 13:30
Что большая и основательная - IMHO более важно smile

Если надо именно на русском, то тогда указывай. Просто для профессиональной работы с JAVA знание английского - необходимое условие.

Автор: chief39 25.5.2005, 14:45
Если вопрос ещё в силе:

Код

import java.io.*;

public class mainclass {
    public static void main(String args[]){

        FileWriter  fw;
        FileReader  fr;
        File        file;


        try{

            file = new File("test.txt");
            file.createNewFile();   // если уже такой файл есть вернёт false,
                                    //  но этим нас не испугать, тем более что мы об этом не узнаем 

            // создаётся райтер для файла
            fw = new FileWriter(file);
            // ну и чтоб два раза не вставать - ридер заодно
            fr = new FileReader(file);
            char[] buf;

            fw.write("Hello!!!");
            fw.flush();  // принудительно сбрасывается на диск
            fw.close();  // закрывается райтер

            // создаётся новый райтер который будет писать в конец файла (append = true)
            fw = new FileWriter(file,true);
            // записывает кусок строки начиная с третьего символа длиной в 5 символов
            fw.write("1234567890",3,5);
            fw.flush();  // см. выше
            fw.close();  // см. выше

            // создаём буферец длиной в файл
            buf = new char[(int)file.length()];
            // читаем в буфер
            fr.read(buf);
            // закрыли
            fr.close();
            // и разболтали секреты всему миру (стандартному выводу)
            System.out.println(new String(buf));

        }catch(IOException e){
            // куча мест где код может испустить эксепшн аки умирающий - дух,
            //  посему сделаем вид что их обрабатываем
            e.printStackTrace();
        }

        // ОСОБО ДОПЫТЛИВЫЕ МОГУТ ОТЫСКАТЬ ФАЙЛ НА ДИСКЕ ГДЕ ВСЁ ЭТО (ЗАПИСАННОЕ) СОХРАНЕНО. ;-)
        // ЗАВОДСКАЯ ГАРАНТИЯ НА ФАЙЛ НЕ ДЕЙСТВУЕТ В СЛУЧАЕ ЕГО УДАЛЕНИЯ ВРУЧНУЮ
        //                      С. УВ.  КОЛЛЕКТИВ   АВТОЗАЗ ДЖАВА   :-)

    }
}


Автор: Berliner 25.5.2005, 15:39
Спасибо большое- извиняюсь перед пользователем DomesticCat(если обидел). Мне на русском хотелось. Англ. яз.- владею. Спасибо за пример по работе с файлом . Мне очень легко на простых примерах осваивать.

Автор: chief39 25.5.2005, 16:01
Коты не обижаются :-)

Примеры - это хорошо.....

Для такого случая порекомендую http://www.elant.ru/faq/java/
(Just code, nothing else smile )


Автор: Domestic Cat 25.5.2005, 18:47
smile
Если нужны примеры -
http://javaalmanac.com/egs/java.io/pkg.html

т.е.
http://javaalmanac.com/egs/java.io/ReadLinesFromFile.html
и так далее

Автор: Berliner 26.5.2005, 14:06
здраствуйте еще раз скажите плиз где тут ошибки и почему

package fail;
import java.io.*;


public class Main {


public Main() {
}


public static void main(String[] args) {
File f;
FileWriter fw;


f = new File("text.txt");
fw = new FileWriter(f);
fw.write("Hello");
fw.flush();
fw.close(f);

}

}

Автор: batigoal 26.5.2005, 14:25
Ошибки две:
1. Вместо fw.close(f); должно быть fw.close();
2. Все методы работы с файлом, включая конструктор, могут выбросить исключение IOException. Это нужно проконтролировать.

Код

import java.io.*;
public class Main
 {
    public static void main(String[] args)
    {
        try
        {
            FileWriter fw = new FileWriter(new File("text.txt"););
            fw.write("Hello");
            fw.flush();
            fw.close();
        }
        catch (IOException e)
        {
            // твои действия по обработке ошибок
        }
    }
}

Автор: chief39 26.5.2005, 15:09
ЭЭЭ батенька, я ж писал про эксепшны smile

Кстати, чем пользуемся?

Идея предупреждает про необработанные эксепшны ещё во время кодирования...

Рекомендую что-то из этого ряда.

в ФАРе и блокноте ещё успеется...

да! f не надо было передавать в fw.close(); потому как мы их поженили
ещё когда создавали: fw = new FileWriter(f);

райтер уже знает об этом файле. Ну а так... Джордж всё расписал smile
Добавлено @ 15:13
Кстати, почитай Эккеля. Кажись вот тут на русском есть
http://www.rost.ru/~sergey/tij2.exe

Хорошо написал smile

Ну а вообще кричи если что smile

Автор: batigoal 26.5.2005, 15:39
Цитата(chief39 @ 26.5.2005, 16:09)
Идея предупреждает про необработанные эксепшны ещё во время кодирования...
Рекомендую что-то из этого ряда.
в ФАРе и блокноте ещё успеется...

Лучше все-таки наоборот smile
Хотя я сам именно в ней и проверял smile

Автор: Berliner 27.5.2005, 12:56
Спасиб. Работает. Я не думал что в Яве нужно обязательно обрабрабатывать исключительные ситуации.

Автор: AntonSaburov 27.5.2005, 14:01
Цитата(Berliner @ 27.5.2005, 12:56)
Я не думал что в Яве нужно обязательно обрабрабатывать исключительные ситуации.

Это достаточно хорошее решение - тебя фактически заставляют писать более надеждный код.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)