• ,

Уровень 32: план уровня и доп. материалы

План уровня:
  • RandomAccessFile
  • StringReader, StringWriter
  • ByteArrayStream, PrintStream
  • Dinamic proxy
  • RMI

Реализовав большую задачу этого уровня, вы детально познакомитесь с Swing.

Курс Java

Что еще можно посмотреть на досуге:
Ответы на вопросы к собеседованию по теме уровня.

Хорошие примеры использования StringWriter-а



Нашли классную ссылку к материалу данной темы? Добавьте ее сюда в виде комментария.
Возможно, именно Ваша ссылка поможет другому человеку стать программистом и улучшить свою жизнь!

Вернуться к плану обучения

Вернуться к обучению java онлайн на JavaRush

18 комментариев

andreytemn
Что-то я в упор не могу нагуглить про «чтение 10000-й строки из файла, не читая предыдущих». Везде пишут, что такое невозможно. Реально ли такое на самом деле?
quazrckk
эм… RandomAccessFile же
andreytemn
Может, я чего-то не дочитал, но я вижу удовлетворительное решение с использованием RandomAccessFile, только если известен размер всех строк либо точно известно место начала искомой строки. Иначе мы просто не будем знать, куда именно ставить маркер, а если ставить куда-то вон туда, ближе к середине, то неизвестно, сколько строк было до этой позиции.
quazrckk
так с этого и надо было начинать, что позиция заранее неизвестна :)
такого решения не может быть в принципе, т.к. перевод строки это просто еще один символ во множестве, его (и соответственно символы до и после) нужно сперва прочитать чтобы определить
NTFS
может быть все таки .skipLine()?
losemind
BufferedReader reader = new BufferedReader(new FileReader("somefile.txt"));
        Stream<String> stringStream = reader.lines();
        String desiredString = stringStream.skip(10000).findFirst().get();
Dmitryy
Overlord
Если кому надо, то пример использования RMI неплохо расписан в книге «Паттерны проектирования» O'Raily, ближе к концу книги.
cuidadoso
В лекции 32 в разделе 5. BufferedReader, BufferedWriter есть опечатка в предложении:

Эти классы по сути чем-то похожи на StringReader и StringWriter. Только StringReader читал символы (char) из строки (String), а InputStream читает байты из массива байт (ByteArray).

!!! вместо ByteArrayInputStream написан InputStream!!!
Lim
  • Lim
  • 0
  • Комментарий отредактирован 2016-02-10 12:57:09 пользователем Lim
Примеры (кроме последнего) про Dinamic Proxy нерабочие.
И если у кого есть хорошие доп.источники про них — поделитесь, я после лекции и 2-х задач мало понял что это и зачем…
lichMax
Про RMI есть в Head First Java
Redlaw
restless-man.livejournal.com/24320.html

Тут довольно просто и доступно поясняется на примерах про динамические прокси.
k_pilyak96
Подробно про прокси
samolisov.blogspot.com.by/2010/04/proxy-java.html
Midnightcom
Подробно про RMI
www.intuit.ru/studies/courses/633/489/lecture/11079?page=1
А это видео по RMI
youtu.be/9r1e5aU_umQ
Medniy
Может кому-то будет полезно… >>>>>>>Много статьей о SWING<<<<
paNNo4ka
  • paNNo4ka
  • +1
  • Комментарий отредактирован 2017-01-30 15:07:33 пользователем paNNo4ka
В лекции 7 про DynamicProxy строки типа
Reader reader = (Reader)Proxy.newProxyInstance(new CustomInvocationHandler());
не соответствуют документации
docs.oracle.com/javase/7/docs/api/java/lang/reflect/Proxy.html
По докам должно быть
Reader reader = (Reader)Proxy.newProxyInstance(Reader.class.getClassLoader(),new Class[]{SomeInterfaceWithMethods.class},new CustomInvocationHandler());
Не зная этого, задачу level32.lesson08.home01 решить не вышло.
jazzz17
про прокси отлично написано тут: restless-man.livejournal.com/24320.html
пока не прочитал, не мог понять, что к чему
anshelen
Ссылка на файл с русским переводом RMI Oracle Tutorial. Очень подробно + есть интересный пример простого распределенного приложения-«вычислителя».
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.