Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / методы mark(int readlimit) и reset(0 / 4 сообщений из 4, страница 1 из 1
28.07.2007, 02:23:08
    #34690501
Primax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
методы mark(int readlimit) и reset(0
Все привет !
Помогите пожалуйста разобраться что делают методы 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
28.07.2007, 02:24:42
    #34690502
Primax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
методы mark(int readlimit) и reset(0
Эээ..там где реально стоит © в сообщении - его там не должно быть по программе ))) там должен быть просто значек амперсанда и слово copy
...
Рейтинг: 0 / 0
30.07.2007, 15:16:55
    #34693027
Primax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
методы mark(int readlimit) и reset(0
:'(
...
Рейтинг: 0 / 0
01.08.2007, 15:47:47
    #34698509
Primax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
методы mark(int readlimit) и reset(0
Ну плиз помогите)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / методы mark(int readlimit) и reset(0 / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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