Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 13.12.2015
Сообщений: 74
1

Исправление в коде

01.03.2016, 14:34. Показов 310. Ответов 6
Метки нет (Все метки)

Нужно чтобы при вызове метода printUser(); программа читала файл только 1 раз и далее работала только со списком
добавленных пользователей
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import java.io.*;
import java.util.*;
 
public class App2 {
    private List<String> users = new ArrayList<>();
    private Scanner sc = new Scanner(System.in);
    static File file = new File("Text12.txt");
 
    public static void main(String[] args) {
 
        App2 menu = new App2();
        menu.mainMenu();
    }
 
    private void mainMenu() {
        System.out.println();
        System.out.println("1: Добавить пользователя ");
        System.out.println("2: Список пользователей");
        System.out.println("0: Выход ");
        int с;
        с = sc.nextInt();
        if (с == 1) {
            addUser();
        } else if (с == 2) {
            printUser();
 
        } else if (с == 0) {
            System.out.print("Выход");
        }
    }
 
    private void addUser() {
        try (FileWriter writer = new FileWriter(file, true)) {
            System.out.print("Введите имя пользователя: ");
            String text = sc.next();
            users.add(text);
            writer.write(text + " ");
            writer.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        mainMenu();
    }
 
    private void printUser() {
        readUser();
        for (String a : users) {
            
            System.out.print(a +  "  ");
        }
        mainMenu();
    }
    private void readUser() {
        try (FileReader reader = new FileReader(file)) {
            char[] buffer = new char[(int) file.length()];
            reader.read(buffer);
            System.out.print((buffer));
            reader.close();
        } catch (Exception e) {
            System.out.println("Пользователей нет. Укажите именна пользователй");
        }
    }
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2016, 14:34
Ответы с готовыми решениями:

Нужно исправление кода - необходимо установить точность вычисления 20 знаков
Написала код: import java.math.BigDecimal; import java.math.RoundingMode; import...

Исправление ошибок в коде
Компилятор находит ошибки , просьба помочь исправить ошибки в коде #include &lt;avr/io.h&gt;...

Исправление ошибки в коде
Всем доброе утро!!!Вот тут задачка запускается , вроде все по примеру делал ,все равно не хочет...

Исправление ошибок в коде
Помогите исправить ошибки в коде на Си: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include...

__________________

Записывайтесь на профессиональные курсы Java-разработчиков
Обучение в Java Mentor с оплатой после трудоустройства
6
90 / 89 / 23
Регистрация: 08.07.2014
Сообщений: 548
01.03.2016, 20:08 2
Она его итак 1 раз читает.
0
0 / 0 / 0
Регистрация: 13.12.2015
Сообщений: 74
01.03.2016, 23:22  [ТС] 3
Та в том то и дело что нет. Когда вводишь пользователя, а потом нажимаешь вывод оно считывает с файла и следом выводит введенное. И в итоге имя выводится два раза
0
1108 / 779 / 219
Регистрация: 15.08.2010
Сообщений: 2,161
02.03.2016, 00:14 4
Walterwolf, а в какой строчке программа считывает имя из файла и добавляет его в список? И зачем существует строка 57?
0
0 / 0 / 0
Регистрация: 13.12.2015
Сообщений: 74
02.03.2016, 21:26  [ТС] 5
57 строчка выводит пользователей с файла нужно чтобы вывело всего один раз с файла , а потом выводило только тех что добавляются во время работы программы

Добавлено через 11 часов 38 минут
Никто не поможет? Надеяться только на себя?
0
1108 / 779 / 219
Регистрация: 15.08.2010
Сообщений: 2,161
03.03.2016, 00:09 6
Цитата Сообщение от Walterwolf Посмотреть сообщение
57 строчка выводит пользователей с файла нужно чтобы вывело всего один раз с файла , а потом выводило только тех что добавляются во время работы программы
в 57 выводит и в 49 выводит. Ход программы таков:
1. добавляешь имя: 1234
2. оно записывается в коллекцию
3. записывается в файл тоже
4. жмешь вывод
5. программа считывает из файла 1234 и печатает
6. программа проходит по коллекции и выводит ее содержимое, т.е. 1234 второй раз.

Самое простое решение: создать флаг был ли прочитан файл. если нет - читать, если да - пропустить чтение.

PS: странная все таки логика вырисовывается

Цитата Сообщение от Walterwolf Посмотреть сообщение
Надеяться только на себя?
а на кого еще то?? суровые реалии жизни)
0
0 / 0 / 0
Регистрация: 13.12.2015
Сообщений: 74
03.03.2016, 08:04  [ТС] 7
Помогите пожалуйста реализовать
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2016, 08:04

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Исправление ошибок в коде
Привет всем, есть код страницы, хотелось бы исправить ошибку такого рода. Чтобы при заходе на...

Исправление ошибок в коде
Прошу помощи в исправлении кода для сортировки двумерного массива по убыванию методом Шелла. Сам...

Исправление ошибки в коде
Помогите исправить ошибку в коде... от этого зависит моя сессия ATMEGA16 Задание и схему...

Исправление ошибок в коде
Ребят, помогите пожалуйста, уже завтра экзамен, а я понятия не имею как исправить ошибки в данном...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.