Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
5 / 5 / 1
Регистрация: 08.07.2015
Сообщений: 91

Чтение файла из двух потоков в третий файл. Условия не вывода все строк

19.08.2015, 11:10. Показов 1588. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе утро. Задание в принципе не сложное я застопорился только на условии. Есть три файла. В одном информация о mail, в другом о группах.

Вот файл mails:

Login;Email
#ivanovjti;ivanov@mail.com
petrovjti;petrov@google.com
obamajti;obama@yahoo.com

Вот файл groups:

Login;Group
ivanovjti;Java1
petrovjti;Java2
obamajti;Java1

Надо все вывести в выходной файл users:

Login;Email;Group
#ivanovjti;ivanov@mail.com;Java1
petrovjti;petrov@google.com;Java2
obamajti;obama@yahoo.com;Java1

У меня все вышло. Все прекрасно. Но обратите внимание на первую строку "#ivanovjti". Она идет с решеткой. Условие состоит в том, что бы выходной файл users не выводил эту строку, если она идет с решеткой.
Т.Е. файл должен иметь такой вид:

Login;Email;Group
petrovjti;petrov@google.com;Java2
obamajti;obama@yahoo.com;Java1

Вот сам мой код:
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
35
36
37
38
39
40
package homework_4;
 
import java.io.*;
 
public class Main {
 
    public static void filter(Reader mails, Reader groups, Writer users) throws IOException {
 
        BufferedReader brm = new BufferedReader(mails);
        BufferedReader brg = new BufferedReader(groups);
        BufferedWriter bru = new BufferedWriter(users);
 
        String m = brm.readLine();
        String g = brg.readLine();
 
        while (m != null && g != null) {
            bru.write(m + ";" + g.split(";")[1] + "\n");
            m = brm.readLine();
            g = brg.readLine();
        }
        bru.flush();
    }
 
    public static void main(String[] args) throws FileNotFoundException, IOException{
 
            Main m = new Main();
 
            FileReader frm = new FileReader("homework_4_1.txt");
            FileReader frg = new FileReader("homework_4_2.txt");
            FileWriter fwu = new FileWriter("homework_4_3.txt");
 
            filter(frm, frg, fwu);
 
            frm.close();
            frg.close();
            fwu.close();
 
    }
 
}
Вообще ничего сложного, что бы у нас не повторялся login, мы просто выводим второй элемент этого файла в выходной поток.

Java
1
bru.write(m + ";" + g.split(";")[1] + "\n");
Но вот как быть с условием, если стоит решетка в одном из файлов, что бы не выводило в файл users эту запись, я не понимаю. Подскажите пожалуйста в какую сторону копать ?

Добавлено через 1 час 39 минут

спасибо, проблема решилась сама собой. кому интересно. используется условие с методом contains.
в данном случае contains("#").
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.08.2015, 11:10
Ответы с готовыми решениями:

Запись в файл и чтение из него без создания двух потоков
Знаю да есть класс StreamReader и StreamWriter но зачем мне делать 2 потока, мне хочется просто как в С++ открыть 1 обьект на...

Нахождение одинаковых строк в двух файлах и вывод результата в третий файл
Помогите пожалуйста. Есть два тестовых файла, которые содержат строки (файлы большие, по 60k строк в каждом). Задача сравнить эти два...

Сравнение двух текстовых файлов и вывод уникальных строк в третий файл
Здравствуйте необходим батник, который сравнивает два текстовых файла и выводит уникальные строки в третий. Только есть небольшой нюанс,...

1
34 / 34 / 35
Регистрация: 21.04.2015
Сообщений: 74
19.08.2015, 11:34
contains("#") вернет true не зависимо от того где в строке находится символ "#" (если у юзера будет логин ivanov#jti его не запишет в файл).
Нужно проверить именно первый символ строки.
Java
1
2
3
4
5
6
7
        while (m != null && g != null) {
            if(m.charAt(0) == '#' || g.charAt(0) == '#')
                continue;
            bru.write(m + ";" + g.split(";")[1] + "\n");
            m = brm.readLine();
            g = brg.readLine();
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.08.2015, 11:34
Помогаю со студенческими работами здесь

Все цифры файла записать во второй файл, а остальные символы – в третий файл
Имеется типизированный файл, элементами которого являются отдельные символы. Все цифры этого файла записать во второй ...

Все четные числа файла записать во второй файл, а нечетные — в третий файл
Имеется файл, элементами которого являются целые числа. Все четные числа этого файла записать во второй файл, а нечетные — в третий файл....

Все четные числа файла записать во второй файл, а нечетные — в третий файл
Имеется файл, элементами которого являются целые числа. Все четные числа этого файла записать во второй файл, а нечетные — в третий ...

Все четные числа из файла записать во второй файл, а нечетные — в третий файл
Имеется файл, элементами которого являются целые числа. Все четные числа этого файла записать во второй файл, а нечетные — в третий файл....

Все цифры числа первого файла записать во второй файл, а остальные символы - в третий файл
Имеется файл, элементами которого являютса отдельные символы. Все цифры числа этого файла записать во второй файл, а остальные символы-в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru