powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Чтение из текстового файла строковых данных в двумерный массив
25 сообщений из 78, страница 2 из 4
Чтение из текстового файла строковых данных в двумерный массив
    #39459317
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelА что цифры невозможно хранить в текстовом типе?

Можно. Но зачем? Они уже хранятся в текстовом типе в файле. Если мы их читаем из файла, то, наверное, чтобы обработать?
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459318
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Хотя мне не понятно, что вы так за типы зацепились, если проблема не в типах данных, а в регулярном выражении.
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459319
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Скажу так, я не буду работать с ними как с цифрами, а буду как с текстом. Так что, в этом плане, тут все хорошо.
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459321
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelХотя мне не понятно, что вы так за типы зацепились, если проблема не в типах данных, а в регулярном выражении.
Нет проблемы в регулярном выражении. Есть проблема в том что существует несколько десятков способов вычитать данные из текстового файла, но не понятно какой именно вам предложить, потому что вы не способны озвучить требования.
- Производительность?
- Краткость кода?
- Необходимая структура данных в результате? То массив, то список, то снова массив. То вдруг оказалось, что на входе файл особого формата, а не так как было описано изначально.
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459322
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelСкажу так, я не буду работать с ними как с цифрами, а буду как с текстом. Так что, в этом плане, тут все хорошо.
Пока не начнете сортировать.
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459328
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczBlackeAngelХотя мне не понятно, что вы так за типы зацепились, если проблема не в типах данных, а в регулярном выражении.
Нет проблемы в регулярном выражении. Есть проблема в том что существует несколько десятков способов вычитать данные из текстового файла, но не понятно какой именно вам предложить, потому что вы не способны озвучить требования.
- Производительность?
- Краткость кода?
- Необходимая структура данных в результате? То массив, то список, то снова массив. То вдруг оказалось, что на входе файл особого формата, а не так как было описано изначально.
- пофиг
-пофиг
-двумерный стринговый массив
-если понадобится, то сортировка по файлам будет, но никак не по правам
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459349
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelsystem/lost+found 0 0 770
system/app 0 0 755
system/app/AnalyticsCore 0 0 755
system/app/AnalyticsCore/AnalyticsCore.apk 0 0 644
system/app/AnalyticsCore/oat 0 0 755
system/app/AnalyticsCore/oat/arm64 0 0 755
system/app/AnalyticsCore/oat/arm64/AnalyticsCore.odex 0 0 644
system/app/AntHalService 0 0 755
system/app/AntHalService/AntHalService.apk 0 0 644
system/app/AntHalService/oat 0 0 755
system/app/AntHalService/oat/arm64 0 0 755
system/app/AntHalService/oat/arm64/AntHalService.odex 0 0 644
Dmitry.,примерно так
пробелы в файлах исключены?
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459352
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
Не исключены. Все может быть.
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459353
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
20509840
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459354
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngel-пофиг
если всё - пофиг, то читайте построчно и распихивайте в свой массив циклом.
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459357
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelPetro123,
Не исключены. Все может быть.
тогда не парь мозги и читай построчно(символ конца строки)
А на строке включай БЛ (бизнес-логику). Т.е. кавычки\пробелы\....всё_может_быть
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459367
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

public class ParseFileRights {
    static final Pattern lineFormat = Pattern.compile("(.*)\\s+(\\d+)\\s+(\\d+)\\s+(\\d+)");


    public static void main(String[] args) throws Exception {
        Path file = Paths.get(args[0]);
        List<List<String>> result = Files.lines(file)
                .map(ParseFileRights::lineToRecord)
                .collect(Collectors.toList());
        System.out.println(result);
    }

    private static List<String> lineToRecord(String line){
        Matcher matcher = lineFormat.matcher(line);
        if(matcher.find()){
            List<String> record = new ArrayList<>();
            for (int i = 1; i < matcher.groupCount(); i++) {
                record.add(matcher.group(i));
            }
            return record;
        }
        throw new RuntimeException(line);
    }
}
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459692
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczНет проблемы в регулярном выражении.
Странно, тогда почему с такой регуляркой все завелось и заработало?
split("\\s(?=\\d+(?:\\s\\d+)?(?:\\s\\d+)?$)")
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459694
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
Ну ещё предложите читать побайтно.
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459734
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelPetro123,
Ну ещё предложите читать побайтно.
понятие "байт" в бизнес-логике списка файлов отсутствует.
Ты ещё регистр процессора предложи.
А программист, делающий не по своему же ТЗ - велосипедоМастер).
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459737
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelСтранно, тогда почему с такой регуляркой все завелось и заработало?
split("\\s(?=\\d+(?:\\s\\d+)?(?:\\s\\d+)?$)")
Это "заработало" до первого файла в имени которого числа и пробелы.
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459778
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Такую строку схавал как надо
system/app/AguiAcc AndAlsps Calibration/lib/arm 6 4/libgse nsorca li_jni .so 0 0 777
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459835
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelТакую строку схавал как надо
system/app/AguiAcc AndAlsps Calibration/lib/arm 6 4/libgse nsorca li_jni .so 0 0 777
если это тест, то хотя бы выдумавыйте с приближением к реальности. Такой файл нельзя в винде создать.
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39459917
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39460024
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
посыпаю голову пеплом.
В конце полного имени файла или папки пробел не разрешается.))
Перед расширением - можно.
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39460026
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, не только. Двоеточия, слеши, звездочки (asterisk)
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39460031
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonPetro123, не только. Двоеточия, слеши, звездочки (asterisk)
Из ГУИ винды двоеточие нельзя, а слеши делают цепочку папок.
Звезду никогда не пробовал)).
Плюсы и запятые стало можно.
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39460041
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда-то были зарезервированные имена CON, LPT, NULL их нельзя было использовать
в качестве имен файлов или каталогов (из соображений совместимости с DOS).
Как щас - не проверял. Не знаю.

Я в свое время проделал немалую работу в попытке создать из NTFS5 документо-ориентированную
БД с индексами. И все эти кейсы - как грабли. Пришлось по ним пройти.
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39597710
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Надеюсь скучали :-)
Итак, надо разбить на функцию и вызов функции следующий кривой код
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
BufferedReader reader = null;
            ArrayList<String> result = new ArrayList<String>();
            Pattern pattern = Pattern.compile("^(.+?)\\s(\\d+)\\s(\\d+)\\s(\\d+)(?:\\s(.+?))?$");
            try {
                reader = new BufferedReader(new FileReader(pathStatfile));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            String line;
            while ((line = reader.readLine()) != null) {
                result.add(line);
            }
            String[][] statfilemass = new String[result.toArray().length][5];
            for (int i=0;i<result.toArray().length;i++){
                Matcher matcher = pattern.matcher(result.get(i).toString());
                if (matcher.find()) {
                    for (int j = 1; j <= matcher.groupCount(); ++j) {
                        statfilemass[i][j - 1] = matcher.group(j);
                    }
                }
            }
...
Рейтинг: 0 / 0
Чтение из текстового файла строковых данных в двумерный массив
    #39597712
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Суть в том чтоб прочитать файл в двумерный массив с регуляркой. Метод такой вот для некоторых файлов вызывает ошибки.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
private static String [] parseLine(String line) {
    ArrayList<String> result = new ArrayList<String>();
    Pattern pattern = Pattern.compile("^(.+?)\\s(\\d+)\\s(\\d+)\\s(\\d+)(?:\\s(.+?))?$");
    Matcher matcher = pattern.matcher(line);
    if (matcher.find()) {
        for (int i = 1; i <= matcher.groupCount(); ++i) {
            result.add(matcher.group(i));
        }
    }
    return result.toArray(new String[0]);
}
...
Рейтинг: 0 / 0
25 сообщений из 78, страница 2 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Чтение из текстового файла строковых данных в двумерный массив
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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