|
|
|
InputStream и OutputSTream
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста почему в Java нет возможности записать в InputStream, а потом считать из него. То есть есть два отдельных класса inputStream и OutputStream. Как тогда реализовать такую возможность, как например в C#, где есть только один класс Stream, !в него можно записать , а когда необходимо, cчитать из него данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2013, 16:52 |
|
||
|
InputStream и OutputSTream
|
|||
|---|---|---|---|
|
#18+
osonПодскажите пожалуйста почему в Java нет возможности записать в InputStream, а потом считать из него. Почему "нет"? Есть. osonТо есть есть два отдельных класса inputStream и OutputStream. Это абстрактные классы. По идиологии почти интерфейсы. osonКак тогда реализовать такую возможность, как например в C#, где есть только один класс Stream, !в него можно записать , а когда необходимо, cчитать из него данные. А если мы пишем куда-то откуда считать потом не предоставляется возможным? Упс. Придётся добавить свойства CanRead/CanWrite и везде проверять их? Если данные нужно записать в память, а потом прочитать - ByteArray(Input/Output)Stream к вашим услугам. Если в файловую систему File(Input/Output)Stream. В чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2013, 17:01 |
|
||
|
InputStream и OutputSTream
|
|||
|---|---|---|---|
|
#18+
Если это ByteArrayInputStream - то записанные в него данные в виде Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. будут храниться в поле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2013, 17:20 |
|
||
|
InputStream и OutputSTream
|
|||
|---|---|---|---|
|
#18+
osonЕсли это ByteArrayInputStream - то записанные в него данные в виде InputStream предназначен для чтения. При чем тут запись? osonбудут храниться в поле А надо где? В лесу? На лужайке? Объясни нормально задачу и проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2013, 17:28 |
|
||
|
InputStream и OutputSTream
|
|||
|---|---|---|---|
|
#18+
Случайно сохранил сообщение. Если это ByteArrayInputStream - то записанные в него данные в виде Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. будут храниться в поле Код: java 1. Потом чтобы прочитать из этого инстанца inputStream надо сделать Код: java 1. 2. 3. 4. 5. 6. 7. Причем у ByteArrayOutputStream тоже есть свой Код: java 1. Как реализовать класс, чтобы можно было не создавать два отдельных класса InputStream и OutputStream, а иметь один класс Stream, в него записать, а когда надо из него считать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2013, 17:31 |
|
||
|
InputStream и OutputSTream
|
|||
|---|---|---|---|
|
#18+
Отнаследовавшись от ByteArrayOutputStream можно получить прямую ссылку на его буфер и использовать этот буфер в ByteArrayInputStream. Можно ещё посмотреть в MappedByteBuffer, но он, вроде не реализует Stream-ы. Хотя можно найти готовые opensource обертки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2013, 17:40 |
|
||
|
InputStream и OutputSTream
|
|||
|---|---|---|---|
|
#18+
osonКак реализовать класс, чтобы можно было не создавать два отдельных класса InputStream и OutputStream, а иметь один класс Stream, в него записать, а когда надо из него считать?Во-первых - не два класса, а два объекта, во-вторых - есть NIO и, в частности, Buffer с разными наследниками под конкретные нужды. Читаем про clear(), flip(), rewind(). Ну и про get()/put(). Про каналы и всё такое прочее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2013, 18:13 |
|
||
|
InputStream и OutputSTream
|
|||
|---|---|---|---|
|
#18+
BlazkowiczМожно ещё посмотреть в MappedByteBuffer, но он, вроде не реализует Stream-ы.java.io позволяет получить канал, от которого рукой подать до (разных вариантов) буферов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2013, 18:16 |
|
||
|
InputStream и OutputSTream
|
|||
|---|---|---|---|
|
#18+
oson, GXQJ5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 22:37 |
|
||
|
InputStream и OutputSTream
|
|||
|---|---|---|---|
|
#18+
oson, зачем тут protected byte buf[] ведь массив где будут хранится данные указан в конструкторе ByteArrayInputStream(bytes); или я что то не так понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 22:40 |
|
||
|
InputStream и OutputSTream
|
|||
|---|---|---|---|
|
#18+
Можно сделать за пять минут, хотя смутно представляю какие профиты по сравнению с байт-стримами это даёт. Синтаксический сахар кокойты. Код: 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. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2014, 19:14 |
|
||
|
InputStream и OutputSTream
|
|||
|---|---|---|---|
|
#18+
osonПодскажите пожалуйста почему в Java нет возможности записать в InputStream, а потом считать из него. То есть есть два отдельных класса inputStream и OutputStream. Как тогда реализовать такую возможность, как например в C#, где есть только один класс Stream, !в него можно записать , а когда необходимо, cчитать из него данные. BlazkowiczПридётся добавить свойства CanRead/CanWrite и везде проверять их? Ну такая штука у нас есть :) - и называется она File - CanRead/CanWrite ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2014, 10:39 |
|
||
|
InputStream и OutputSTream
|
|||
|---|---|---|---|
|
#18+
osonПодскажите пожалуйста почему в Java нет возможности записать в InputStream, а потом считать из него. То есть есть два отдельных класса inputStream и OutputStream. Как тогда реализовать такую возможность, как например в C#, где есть только один класс Stream, !в него можно записать , а когда необходимо, cчитать из него данные. Исторически, это наследие поточных устройств типа клавиатуры и принтера. Поэтому они создавались так как будто это труба в которую что-то втекает или вытекает. Это также удобно для работы с текстом. Но если у тебя задача и писать и читать и рандомно позиционировать (последнее - вытекает) то тебе нужен RandomAccessFile или просто твой собственный интерфейс но с реализацией byte[] или RAF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2014, 15:09 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38118458&tid=2127809]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
151ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 466ms |

| 0 / 0 |
