Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/26: Рейтинг темы: голосов - 26, средняя оценка - 4.50
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280

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

16.11.2018, 15:38. Показов 5356. Ответов 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
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru