powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Долго читаю текстовой файл
2 сообщений из 2, страница 1 из 1
Долго читаю текстовой файл
    #39350400
azsx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаю Шилдта, перехожу с паскаля, поэтому, всё, что можно сделать не правильно - я делаю не правильно.
У меня задача, прочитать текстовой файл. За ночь я прочитал 1% из 319 мб.
Вопрос, что я делаю не правильно при чтении и как надо делать правильно?
Также, так как по умолчанию java на каком-то ПК в вакуме выделяет 128 мб оперативной памяти, просто считать весь файл в переменную, если он не более 2 гб (как в паскале) я не могу, так как легко превышу память, верно? Я рассчитывал кодом посмотреть какое исключение идёт при переполнении памяти, а затем работать с all_fl последовательно, то есть как он строчку целиком считал, так чтение приостанавливать и обрабатывать строчку, затем all_fl = ""; и читаю дальше. Это правильно?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
                try(FileInputStream fin=new FileInputStream("c:/ru_domains.txt"))
        {
            System.out.println("Размер файла: " + fin.available() + " байт(а)");
            
            String all_fl = "";
            double i=-1, all_str = 0, procent = 0;
            procent = Math.abs((fin.available()/100));
            
            while((i=fin.read())!=-1){
                all_fl = all_fl + (char)i;
                all_str = all_str + 1;
                
                //System.out.println(all_str);
                
                if ((all_str % procent) == 0) {
                    System.out.println((all_str/procent)+ "%");
                    }
                //System.out.print((char)i);
            }   
        }
        catch(IOException ex){
            System.out.println(ex); 
            System.out.println(ex.getMessage());
        } 
        
        System.out.println("Конец");
...
Рейтинг: 0 / 0
Долго читаю текстовой файл
    #39350422
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы читать по одному байту нужно InputStream обернуть в BufferedInputStream. Метод available() при работе с файлами особого смысла не имеет.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Долго читаю текстовой файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]