Как скопировать байтовый диапазон в новый выходной файл в Rust? [Дубликат]

Вот более простое решение. На стороне Java создайте прослушиватель для каждой кнопки. Он не должен быть каким-либо конкретным классом, так как метод будет искать с помощью отражения:

WebSettings ws = wv.getSettings();
ws.setJavaScriptEnabled(true);
wv.addJavascriptInterface(new Object()
{
  public void performClick()
  {
    // Deal with a click on the OK button
  }
}, "ok");

Затем в HTML вызовите его непосредственно из тега кнопки:

<button type="button" onclick="ok.performClick();">OK</button>
7
задан Kara 10 November 2015 в 21:58
поделиться

1 ответ

Вы ищете io::copy :

use std::io::{self, prelude::*, SeekFrom};

pub fn assemble<I, O>(mut input: I, mut output: O) -> Result<(), io::Error>
where
    I: Read + Seek,
    O: Write,
{
    // first seek and output "hello"
    input.seek(SeekFrom::Start(5))?;
    io::copy(&mut input.by_ref().take(5), &mut output)?;

    // then output "world"
    input.seek(SeekFrom::Start(0))?;
    io::copy(&mut input.take(5), &mut output)?;

    Ok(())
}

Если вы посмотрите на реализацию io::copy , вы увидите, что он похож на ваш код. Тем не менее, он заботится о том, чтобы обрабатывать больше ошибок:

  1. write не всегда записывает все, что вы просите!
  2. «Прерванная» запись обычно не fatal.

Он также использует больший размер буфера, но все еще содержит стек.

6
ответ дан Shepmaster 16 August 2018 в 03:32
поделиться
Другие вопросы по тегам:

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