2 / 2 / 0
Регистрация: 19.12.2020
Сообщений: 229

Не работают методы класса (вывод данных в файлы)

03.04.2022, 17:10. Показов 1382. Ответов 8
Метки java (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста, исправить код.
В классе есть два метода:
1. void output(OutputStream out) - запись в байтовый поток.
2. void write(Writer out) - запись в символьный поток.

В классе есть поля, которые и нужно записать.

Java
1
2
3
int [] numbers = {43, 245, 67};
String str = "Star";
int num = 100;
Я сделала такие методы:

Байтовый поток

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
public void output (OutputStream out) 
    {
        try {
            ByteArrayOutputStream by = new ByteArrayOutputStream(); //массив чисел в массив байтов
            ObjectOutputStream o = new ObjectOutputStream(by);
            o.writeObject(numbers);
            byte [] bbb = by.toByteArray();
 
            String stroka = "" + num; //число в строку
 
            //начало работы с файлом
            FileOutputStream fm = new FileOutputStream("m.txt");
            fm.write(bbb);
            fm.write(str.getBytes(StandardCharsets.UTF_8)); //перевести строку в байты 
            fm.write(num.getBytes(StandardCharsets.UTF_8));
            fm.close();
 
        }
        catch (IOException ex) {
            System.out.println("Исключение");
 
    }
 
        }


Символьный поток

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public void write (Writer out) 
        {
            try {
                FileOutputStream ffm = new FileOutputStream("m.txt");
                for (int i = 0; i < numbers.length; i++)
                {
                    ffm.write(numbers[i]);
                }
 
                for (int i = 0; i < str.length(); i++)
                {
                    ffm.write(str.charAt(i));
                }
 
                ffm.write(num);
                ffm.close();
 
            }
            catch (IOException ex) {
                System.out.println("Исключение");
        }
        }
Методы я пытаюсь вызвать следующим образом:

Java
1
2
3
Zapusk z = new Zapusk();
z.output("m.txt");
z.write("m.txt");
Пробовала указывать весь путь до файла - бесполезно.

При попытке вызвать методы появляются такие ошибки:

'output(java.io.OutputStream)' in 'Tasks.Zapusk' cannot be applied to '(java.lang.String)'
'write(java.io.OutputStream)' in 'Tasks.Zapusk' cannot be applied to '(java.lang.String)'

Т.е. вот эти методы не могут применяться вместе с java.lang.String.

Мне кажется, я не совсем правильно прописала алгоритмы в методах. Все примеры, которые я находила, были только в public static void main, а мне нужно сделать именно метод класса.
Может быть, я зря создаю FileOutputStream в методе. Его нужно делать при вызове метода. Но как тогда в самом методе указать, что данные должны быть записаны строго в какой-то файл?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.04.2022, 17:10
Ответы с готовыми решениями:

Некорректно работают методы класса
Ситуация такая: метод Size_Of_Packet запускается, но выводит некорректный результат. Он как будто вообще не понимает, какой разряд я ему...

Почему не все методы класса «Прямоугольник» работают?
Задание: Описать класс «Прямоугольник» со сторонами, параллельными осям координат. Предусмотреть возможность перемещения прямоугольников на...

Не работают методы сортировки и копирования класса Array
Нужно отсортировать массив с помощью метода Arrays.sort(); Так же скопировать один массив в другой, хотя не работает ни копирование ни...

8
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
03.04.2022, 17:39
Ты не понимаешь, что String и OutputStream - это вообще не одно и то же?
0
2 / 2 / 0
Регистрация: 19.12.2020
Сообщений: 229
03.04.2022, 17:56  [ТС]
xoraxax, я знаю, что это разные вещи. Но вроде так нужно указывать имя файла при работе с ним - в кавычках.
У меня есть конкретный файл, куда я хотела записать, я его и пишу.
Или при работе с OutputStream, если он параметр метода, надо поступать как-то по-другому?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
03.04.2022, 19:00
если ты знаешь, что в тостер надо класть хлеб, ты же не кладешь туда валенки.
0
2 / 2 / 0
Регистрация: 19.12.2020
Сообщений: 229
03.04.2022, 19:22  [ТС]
Я описала суть своей проблемы. Указала, что не могу найти похожие решения в интернете. У меня есть примерный код. Я так вижу решение задачи. Хочу понять, в чём там ошибки и как их можно устранить.

Я создала эту тему в разделе для начинающих. Если вы пытались наводящими вопросами направить меня на нужную мысль, у вас это пока не получилось.

Почему вы мне не посоветуете что-то конкретное? Объясните, почему на ваш взгляд вся проблема в том, что я не понимаю String и OutputStream?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
03.04.2022, 19:43
Скопа, потому что ты в метод, который принимает аутпут стрим пытаешься передать стринг. Это не наводящие вопросы, я тебя прямо носом в проблему тыкаю, как и компилятор, собственно.
Метод - это тостер. АутпутСтрим - это хлеб, стринг - это валенок. Улавливаешь?
0
2 / 2 / 0
Регистрация: 19.12.2020
Сообщений: 229
03.04.2022, 19:48  [ТС]
xoraxax, теперь да.
А как мне тогда вызывать этот метод на исполнение? В примерах, которые я смотрела, OutputStream не был параметром метода, а тут он параметр. Что надо исправить?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
03.04.2022, 19:59
Либо исправить тип параметр на стринг, либо передавать в метод аутпут стрим, очевидно вроде. Прочитай какую нибудь книгу
0
 Аватар для IbnMong
135 / 62 / 13
Регистрация: 10.03.2022
Сообщений: 215
04.04.2022, 20:24
Скопа, вот доки по классу OutputStream

по String

Полезно было бы почитать еще о типах данных.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.04.2022, 20:24
Помогаю со студенческими работами здесь

Не работают публичные методы класса в разных файлах проекта
Есть класс PathsToFiles, разделённый на отдельные файлы: paths.hpp - интерфейс // paths.hpp #ifndef PATHS_HPP #define...

Создать класс обыкновенная дробь, поля класса – числитель и знаменатель. Методы класса: вывод дроби. В классе
Создать класс обыкновенная дробь, поля класса – числитель и знаменатель. Методы класса: вывод дроби. В классе предусмотреть методы...

Поля данных класса должны быть закрытыми, а методы класса открытыми
Объект – животное в зоопарке. Известна порода животного, возраст, пол, окрас, кличка. Сосчитать, сколько животных имеют возраст до 1 года. ...

Вынести класс и методы класса в отдельные файлы
Здравствуйте, написала программу для дробей. Теперь нужно создать отдельный файл для класса и для метода, что бы только вызывать их в...

Не работают методы union, except, intersect c пользовательским типом данных
Здравствуйте! Решаю задачу-Карточка персоны содержит фамилию и дату рождения. Реализовать класс ListPerson для работы с картотекой...


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

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

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
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, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru