Чтение-запись к Каналу Linux с помощью Java

head работы также:

head -c 100 file  # returns the first 100 bytes in the file

.. извлечет первые 100 байтов и возвратит их.

то, Что хорошо об использовании head для этого, то, что синтаксис для tail соответствия:

tail -c 100 file  # returns the last 100 bytes in the file
9
задан Jonas 30 December 2012 в 12:22
поделиться

3 ответа

Я сам никогда не пробовал, но то, что вы делаете, кажется неправильным. Каналы Linux по определению работают в порядке очереди (FIFO). Следовательно, вы должны иметь возможность читать байты только в том же порядке, в котором вы их записали, а не случайным образом. Я бы посоветовал вместо этого использовать обычный файл , и он должен работать нормально.

11
ответ дан 4 December 2019 в 12:19
поделиться

Насколько мне известно, конвейеры не обрабатываются каким-либо специальным образом в Java. Вы просто открываете файл для записи и записываете в него.

Вы не можете действительно «перезаписать» что-либо в конвейере, так как вы не можете искать в конвейере. По той же причине RandomAccessFile не самый разумный выбор для использования (поскольку канал явно не файл с произвольным доступом). Я бы предложил вместо этого использовать FileOutputStream .

Также обратите внимание, что read () не гарантирует чтение, пока буфер не заполнится! Он также может читать один байт, и вам необходимо проверить его возвращаемое значение и, возможно, выполнить цикл для чтения полного буфера.

6
ответ дан 4 December 2019 в 12:19
поделиться

Я думаю, что вы, возможно, не промываетесь после записи, поэтому часто выполняйте OutputStream.flush (), и чтение может быть байтовым, по крайней мере, чтобы увидеть, проходят ли ваши данные. например, чтобы начать с открытия именованного канала в режиме только для чтения (FileInputStream) в process1, откройте его в режиме записи (FileOutputStream) в process2, чтобы все, что вы пишете в process2, будет прочитано в process1.

также читает

http: //www.tldp.org/LDP/lpg/node15.html
http://www.unixguide.net/unix/programming/2.10.5.shtml http://www.unixguide.net/ unix / programming / 2.10.6.shtml

0
ответ дан 4 December 2019 в 12:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: