Считайте данные в FileStream в универсальный Поток

 Intent intent=new Intent(v.getContext(),MainActivity.class);
         intent.putExtra("key","value");
         startActivity(intent);

в моем случае этот код работает: намерение вызова в действии очень просто, см. Код ниже:

Intent intent=new Intent(HomeActivity.this,MainActivity.class);
         intent.putExtra("key","value");
         startActivity(intent);
**or try this code :**
Intent intent=new Intent(this,MainActivity.class);
         intent.putExtra("key","value");
         startActivity(intent);
5
задан cynicalman 24 September 2008 в 19:15
поделиться

4 ответа

Stephen Toub обсуждает потоковый конвейер в своем столбце вопросов.NET MSDN здесь. В статье он описывает CopyStream () метод, который копирует от одного входного потока до другого потока. Это звучит весьма схожим с тем, что Вы пытаетесь сделать.

7
ответ дан 18 December 2019 в 12:03
поделиться

Я прокрутил вместе быстрый дополнительный метод (так только VS 2008 w/3.5):

public static class StreamCopier
{
   private const long DefaultStreamChunkSize = 0x1000;

   public static void CopyTo(this Stream from, Stream to)
   {
      if (!from.CanRead || !to.CanWrite)
      {
         return;
      }

      var buffer = from.CanSeek
         ? new byte[from.Length]
         : new byte[DefaultStreamChunkSize];
      int read;

      while ((read = from.Read(buffer, 0, buffer.Length)) > 0)
      {
        to.Write(buffer, 0, read);
      }
   }
}

Это может использоваться таким образом:

 using (var input = File.OpenRead(@"C:\wrnpc12.txt"))
 using (var output = File.OpenWrite(@"C:\wrnpc12.bak"))
 {
    input.CopyTo(output);
 }

Можно также подкачать логику вокруг немного и записать a CopyFrom() метод также.

7
ответ дан 18 December 2019 в 12:03
поделиться

Чтение буфера байтов и затем запись его являются самыми быстрыми. Методы как ReadLine() потребность искать разделители строки, который занимает больше времени, чем просто заполнение буфера.

1
ответ дан 18 December 2019 в 12:03
поделиться

Я принимаю универсальным потоком, Вы имеете в виду любой другой вид потока, как Поток Памяти, и т.д.

Если так, самый эффективный путь состоит в том, чтобы считать блоки байтов и записать им в поток получателя. Размер блока может быть чем-то как 512 байтов.

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

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