powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / методы mark(int readlimit) и reset(0
4 сообщений из 4, страница 1 из 1
методы mark(int readlimit) и reset(0
    #34690501
Primax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все привет !
Помогите пожалуйста разобраться что делают методы mark(int readlimit) и reset(). В документации сказано, что mark(int readlimit) устанавливает указатель в потоке(?) в текущую позицию, и следующий вызов reset() вернет этот поточный указатель в позицию mark; а readlimit - максимальное кол-во байт, которое может быть считано перед тем как mark станет недоступной.
Но это теория, а на практике я не очень понял что это значит...
Вот пример из книги :
Код: plaintext
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.
 public   static   void  main(String arg[])  throws  IOException
	{
		String str = "Eto : © - simvol avtorskogo prava, a eto: &copy - net";
		
		 byte  b[] = str.getBytes();
		 
		ByteArrayInputStream in =  new  ByteArrayInputStream(b);
		BufferedInputStream buf =  new  BufferedInputStream(in);
		
		 int  c;
		 boolean  marked = false;
		
		 while  ((c=buf.read()) != - 1  )
		{
			 switch (c)
			{
				 case  '&':
				{
					 if  (!marked)
					{
						buf.mark( 32 );
						marked = true;
					}
					 else 
						marked = false;
				}
				 break ;
				 case  ';':
				{
					 if  ( marked ) 
					{
						marked = false;
						System.out.print(c);
					}
					 else 
						System.out.print(( char )c);
				}
				 break ;
				 case  ' ':
				{
					 if  ( marked )
					{
						marked = false;
						buf.reset();
						System.out.print("&");
					}
					 else 
						System.out.print(( char )c);
				}
				 break ;
				 default :
				{
					 if  ( !marked )
					{
						System.out.print(( char )c);
					}
				}
				 break ;
			}
		}
	}
Это из книги, и там наверно опечатка, потому что написано так :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 case  ';':
				{
					 if  ( marked ) 
					{
						marked = false;
						System.out.print("(c)); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!
					}
					 else 
						System.out.print(( char )c);
				}
что они имели тут в виду, я не понял, но в итоге я должен быть получить такой вывод :

.Eto : значек копирайта - simvol avtorskogo prava, a eto: &copy - net

Помогите пожалуйста насчет этих методов и что надо исправить в том коде, чтоб получить желаемую строку !!!
С уважением,
...
Рейтинг: 0 / 0
методы mark(int readlimit) и reset(0
    #34690502
Primax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эээ..там где реально стоит © в сообщении - его там не должно быть по программе ))) там должен быть просто значек амперсанда и слово copy
...
Рейтинг: 0 / 0
методы mark(int readlimit) и reset(0
    #34693027
Primax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:'(
...
Рейтинг: 0 / 0
методы mark(int readlimit) и reset(0
    #34698509
Primax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну плиз помогите)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / методы mark(int readlimit) и reset(0
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]