8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280

Не получается: Создать программой .txt и написать несколько строк, поменять в нем 2 строку на другую, в 3 строке

16.11.2018, 15:38. Показов 5460. Ответов 61
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возникла серьезная проблема при создании кода для лабораторной работы:
Суть работы такова:

Создать программой .txt и написать несколько строк в файл вручную через консоль,
Поменять в нем 2 строку на другую, поменять в 3 строке второе слово (все без перезаписи файла)

потом работа с двоичным файлом: поменять 2 байта в двоичном файле.

Main.java:

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
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
        //подсказки для ДЗ: для реализации ввести в поиск java get text from conslote to string и java how write text to file
 
        // создадим новый файл
        File newFile = new File("F://Dir.txt");
        try
        {
            boolean created = newFile.createNewFile();
            if(created)
                System.out.println("File has been created");
        }
        catch(IOException ex){
 
            System.out.println(ex.getMessage());
        }
        //чтение с консоли через Scanner:
        String cls0;
        String cls1;
 
        Scanner in = new Scanner(System.in);
        System.out.println("Enter a string");
        cls0 = in.nextLine();
 
        System.out.println("Enter a string");
        cls1 = in.nextLine();
    }
}
CreateNewFile.java

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
import java.io.File;
import java.io.IOException;
 
public class CreateNewFile {
 
    //В этом классе представлены способы создания файла в Java
    public static void main(String[] args) throws IOException {
        // получаем разделитель пути в текущей операционной системе
        String fileSeparator = System.getProperty("file.separator");
 
        //создаем абсолютный путь к файлу
        String absoluteFilePath = fileSeparator + "Users" + fileSeparator + "prologistic" + fileSeparator + "file.txt";
 
        File file = new File(absoluteFilePath);
        if (file.createNewFile()) {
            System.out.println(absoluteFilePath + " Файл создан");
        } else {
            System.out.println("Файл " + absoluteFilePath + " уже существует");
 
 
            //создаем файл с указанием относительного пути к файлу
            String relativePath = "tmp" + fileSeparator + "file.txt";
            file = new File(relativePath);
            if (file.createNewFile()) {
                System.out.println(relativePath + " файл создан в корневой директории проекта");
            } else System.out.println("Файл " + relativePath + " уже существует в директории проекта");
        }
 
    }
}
В итоге из этапов только происходит создание файла по адресу и никакие вводимые через консоль три строки там не пишутся.
Кто сможет сделать это как можно рациональнее и короче, заранее благодарю.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.11.2018, 15:38
Ответы с готовыми решениями:

Не получается вставить несколько строк из одной таблицы в другую
Добрый день. Нужно вставить в таблицу oc_product_to_category в столбцы category_id, main_category, product_id значения ...

Дан текстовый файл, состоящий из нескольких строк. Поменять в нем местами первую и последнюю строку.
Дан текстовый файл, состоящий из нескольких строк. Поменять в нем местами первую и последнюю строку. Добавлено через 26 секунд ...

Создать текстовый файл in.txt, куда записать несколько строк. Найти номер самой короткой строки
1.Создать текстовый файл in.txt, куда записать несколько строк. Найти номер самой короткой строки. Буду благодарен ..

61
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
16.11.2018, 17:13  [ТС]
Студворк — интернет-сервис помощи студентам
Да уж, каверзная задача попалась, даже реализация письма нескольких строк в файл вручную через консоль - мертвая точка, а уж о замене в нем 2 строки на другую, и второго слова в 3 строке без перезаписи файла и думать даже не приходится.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
16.11.2018, 17:15
Цитата Сообщение от Jim Reinor Посмотреть сообщение
ни файла по адресу
Да что вы говорите? А диск D вообще присутствует в системе?

Цитата Сообщение от Jim Reinor Посмотреть сообщение
ни возможности ввести строки
Ну это уж как-нибудь сам
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
16.11.2018, 17:16
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
package Main;
import java.io.*;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.io.FileWriter;
 
public class Main{
 
    public static void main(String[] args) throws IOException {
        //подсказки для ДЗ: для реализации ввести в поиск java get text from conslote to string и java how write text to file
         try
         {
        // создадим новый файл
        File newFile = new File("F://Dir.txt");
        FileWriter fw = new FileWriter(newFile);
 
       
            boolean created = newFile.createNewFile();
            if(created)
                System.out.println("File has been created");
        
        //чтение с консоли через Scanner:
        String cls0;
        String cls1;
 
        Scanner in = new Scanner(System.in);
        System.out.println("Enter a string");
        cls0 = in.nextLine();
        fw.write(cls0);
 
 
        System.out.println("Enter a string");
        cls1 = in.nextLine();
        fw.write(cls1);
        fw.close();in.close();
        }
        catch(IOException ex){
 
            System.out.println(ex.getMessage());
        }
    }
}
а так?
0
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
16.11.2018, 17:21  [ТС]
iSmokeJC, нашел на диске Д данный файл через 3 минуты позже, но весь текст с невозможностью его ручного ввода(нужна полная переработка строк) и эти две строки слеплены в одну, что исключает даже дальнейшую возможность замены в нем строк или слов, что к сожалению, не позволяет реализовать основную задачу.
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
16.11.2018, 17:24
fw.write(cls0.concat(System.getProperty( "line.separator"));
добавь в свою прогу
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
16.11.2018, 17:26
Цитата Сообщение от Jim Reinor Посмотреть сообщение
весь текст с невозможностью его ручного ввода
Что это значит?
0
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
16.11.2018, 17:27  [ТС]
DimaxDe, Ваш код наконец-то заработал, и можно ввести строки самому, но один нюанс- аналогичная ситуация iSmokeJC со склеиванием строк в одну строку. Как можно это пофиксить?

Добавлено через 1 минуту
iSmokeJC, текст "дискретный", поэтому пользователь не может ввести эти строки сам, и он находится внутри программы, что противоречит условию моей задачи.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
16.11.2018, 17:29
Господи!!!
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = "";
 
        try (FileWriter writer = new FileWriter(new File("D:/test.txt"))) {
            while (!"q".equals(s)) {
                s = scanner.nextLine();
                writer.write(s + "\n");
                writer.flush();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
Добавлено через 10 секунд
Вводи на здоровье
0
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
16.11.2018, 17:33  [ТС]
DimaxDe, благодарен за сепаратор, незаменимо помог, а теперь самое заветное-как сделать замену второй строки полностью на другую(можно и фиксированную в программе) и в добавленной третьей строке заменить второе слово на другое без перезаписи файла?
iSmokeJC, только цикл процесса здесь не кончится вплоть до закрытия программы и строки приклеены друг к другу.
0
16.11.2018, 17:34

Не по теме:

Кстати, любопытно было бы глянуть на шамана, меняющего что-то в файле без перезаписи...

0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
16.11.2018, 17:34
Цитата Сообщение от Jim Reinor Посмотреть сообщение
DimaxDe, Ваш код
братан ет не мой код ето твой код
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
16.11.2018, 17:35
Цитата Сообщение от Jim Reinor Посмотреть сообщение
не кончится вплоть до закрытия программы
А ты бы подумал маленько - а зачем там условие
Цитата Сообщение от iSmokeJC Посмотреть сообщение
!"q".equals(s)
?
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
16.11.2018, 17:35
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Не по теме:
Кстати, любопытно было бы глянуть на шамана, меняющего что-то в файле без перезаписи...
тож думал..имеется ввиду при записи походу
0
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
16.11.2018, 17:36  [ТС]
iSmokeJC, Нам в вузе на втором курсе вместо любого преподавателя по программированию поставили какого-то практиканта, поступившего на коммер и учащегося в магистратуре, который в Java наладом едет со скрипом. Он и выдает такие задания, так как считает, что наши знания неоспоримы.
Да, и я подумал, что без перезаписи файла это вообще не представляется возможным, надо бы реализовать оставшиеся пункты в задаче.
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
16.11.2018, 17:40
Цитата Сообщение от Jim Reinor Посмотреть сообщение
DimaxDe, благодарен за сепаратор, незаменимо помог, а теперь самое заветное-как сделать замену второй строки полностью на другую(можно и фиксированную в программе) и в добавленной третьей строке заменить второе слово на другое без перезаписи файла?
давай думать ..если без перезаписи значит при записи..

походу сплит нужен ..
0
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
16.11.2018, 17:41  [ТС]
DimaxDe, а сплитом что нарезать то нужно?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
16.11.2018, 17:43
Jim Reinor, в данном случае можно читать все введенные строки в лист, совершать над ними нужные манипуляции, а потом уж писАть в файл.
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
16.11.2018, 17:44
несовсем понятен вапрос..накакую строчку менять вторую и куда девать вторую ?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
16.11.2018, 17:44
Цитата Сообщение от Jim Reinor Посмотреть сообщение
а сплитом что нарезать то нужно?
А сплитом нарезать строку, в которой слова менять
0
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
16.11.2018, 17:49  [ТС]
DimaxDe,

1 Создать программой .txt и написать несколько строк в файл вручную через консоль(Это нам удалось сделать)

2 Поменять в нем 2 строку на другую, поменять в 3 строке второе слово на другое (в обоих случаях замены не важно на какие строку и слово) (все без перезаписи файла, ну как сам выдающий задание сказал, я подумал и он говорил, что всего лишь имелось в виду без уничтожения предыдущего)

Добавил и третью строчку в программу вот так (думаю понятно, тут многоточие разделяет все, что находится между этими фрагментами, fw.close переехал из второй уже к третьей строчке):


Java
1
2
3
4
5
6
7
8
String cls2;
 
...
 
System.out.println("Enter a string");
            cls2 = in.nextLine();
            fw.write(cls2.concat(System.getProperty("line.separator")));
            fw.close();in.close();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2018, 17:49
Помогаю со студенческими работами здесь

Как в txt в каждую строку перед первым словом в строке написать слово mod?
как в txt в каждую строку перед первым словом в строке написать слово mod? пустых строк нет

Считать с файла (input.txt) строку, заменить в строке латинские буквы на русские, записать файл (input.txt) эту строку
Считать с файла (input.txt) строку, заменить в строке латинские буквы на русские, записать файл (input.txt) эту строку.

Отсортировать N-ую строку файла fin.txt по возрастанию длин слов в строке и записать ее в fout.txt
не могу понять c++ , поможет кто разобраться? на паскале всё получается, а сейчас решил C++ изучить Вот задачка: В текстовом файле...

Как создать файл *txt в папке с программой
Помогите пожалуйсто ,как создать файл *txt?В той-же папке,в которой хранится программа.


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

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

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru