Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2009, 22:56   #1
olka1198
Новичок
Джуниор
 
Регистрация: 27.10.2009
Сообщений: 1
По умолчанию сериализовать и вывести на экран байтовый поток

в общем,у меня такая проблема...мне нужно было прочитать файл символьным потоком,сериализовать и вывести на экран сериализованный байтовый поток...прочитать то прочитала,а сериализовать и вывести байтовый поток не могу...помогите кто знает...очень нужно...я прям в отчаяние...эх((
вот мой код:
Код:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

class KtoD {
	String str;
	FileWriter fw;
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	KtoD(String fileName) {
		try {
			fw = new FileWriter(fileName);
		} catch (IOException exc) {
			System.out.println("Нельзя открыть файл");
			return;
		}

		System.out.println("Введите текст (или 'stop'для выхода).");
		try {
			do {
				System.out.println(": ");
				str = br.readLine();

				if (str.compareTo("stop") == 0)
					break;

				str = str + "\r\n";
				fw.write(str);
			} while (str.compareTo("stop") != 0);
		} catch (IOException exc) {
			System.out.println("Error writing to file.");
		}

		try {
			fw.close();
		} catch (IOException exc) {
			System.out.println("Error closing file.");
		}
	}
}

class KtoD_X2 {
	String s;
	FileReader fr;
	BufferedReader br1;

	KtoD_X2(String fileName) {
		try {
			fr = new FileReader(fileName);
			br1 = new BufferedReader(fr);
		} catch (FileNotFoundException exc) {
			System.out.println("Cannot open input file.");
			return;
		}

		try {
			// Чтение строк файла и отображение их на экране.
			while ((s = br1.readLine()) != null) {
				System.out.println(s);
			}
		} catch (IOException exc) {
			System.out.println("Error reading file.");
		}

		try {
			fr.close();
		} catch (IOException exc) {
			System.out.println("Error closing file.");
		}

	}
}

public class KtoDStart {
	public static void main(String[] args) {
		KtoD wrfile = new KtoD("text.txt");
		KtoD_X2 rdfile = new KtoD_X2("text.txt");
	}
}//тут пыталась начать сериализовать,Но не работает((
 try {
               FileOutputStream fos = new FileOutputStream("text.txt");
               ObjectOutputStream oos = new ObjectOutputStream(fos);
               oos.writeObject(accmap.get(clientName));
               oos.flush();
               oos.close();
          } catch (IOException exc) {
               System.out.println("Ошибка ввода-вывода");
               System.exit(0);
          }

Последний раз редактировалось Stilet; 28.10.2009 в 09:13.
olka1198 вне форума Ответить с цитированием
Старый 28.10.2009, 15:20   #2
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Цитата:
Сообщение от olka1198 Посмотреть сообщение
в общем,у меня такая проблема...
Код:
 try {
               FileOutputStream fos = new FileOutputStream("text.txt");
               ObjectOutputStream oos = new ObjectOutputStream(fos);
               oos.writeObject(accmap.get(clientName));
               oos.flush();
               oos.close();
          } catch (IOException exc) {
               System.out.println("Ошибка ввода-вывода");
               System.exit(0);
          }
последний трай-катч блок от куда(на текущий момент расположен вне класса и методов класса)? accmap.get(clientName) что возвращает? объект какого типа?


К томуже, мне показалось что вы, сначало пытаетесь записать в test.txt, а потом добавить в этот файл сериализованные данные. Если мне память не изменяет, то тут будет ошибка вылетать. писать надо либо в пустой файл, либо в тот, в котором уже есть заголовок сериализации.

Если вы попытаетесь сериализовать в класс несколько экземпляров в течении разных сессий, либо несколько различных экземпляров, разных классов, то у вас с 99.99%-ной вероятностью будут проблемы при чтении данных, тут надо манипулировать заголовками сериализации.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести bmp изображение на экран?? lexuss Паскаль, Turbo Pascal, PascalABC.NET 12 09.04.2011 00:02
Delphi. вывести на экран таблицу world12_tk Помощь студентам 2 18.10.2009 17:26
Сложить два числа и вывести результат на экран We1c0m3 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 23.05.2009 11:41
Из чисел 1, 1+ 1/2, 1+1/2+1/3 , … вывести на экран те, которые меньше а. umiko Microsoft Office Excel 1 16.05.2009 08:29
Как вывести на экран... (Делфи)!!! DjVidan Помощь студентам 14 09.03.2009 16:31