javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

流中的用例

在Scala中,有一个Stream类,非常类似于迭代器。 Scala中的迭代器与流之间的区别是什么? 提供了有关两者之间异同的一些见解。

看到如何使用流非常简单,但是我没有很多常见的用例来使用流而不是其他工件。

我现在的想法是:

  • 如果需要使用无限级数。 但这对我来说似乎并不常见,因此不符合我的标准。 (如果这很常见,请纠正我,我只是一个盲点)
  • 如果您有一系列数据需要计算每个元素,但是您可能需要重用几次。 这是很弱的,因为我可以将其加载到一个列表中,从概念上讲,该列表在开发人员中占很大比例。
  • 也许有大量的数据集或计算量很大的序列,并且很有可能您需要的项目不需要访问所有元素。 但是在这种情况下,除非您需要进行多次搜索,否则Iterator将是一个很好的匹配,在这种情况下,即使效率较低,您也可以使用列表。
  • 有一系列复杂的数据需要重用。 同样,这里可以使用列表。 尽管在这种情况下,两种情况都将同样难以使用,并且Stream会更适合,因为并非所有元素都需要加载。 但是还是不那么普遍...是吗?

那我错过了任何大用途吗? 还是大多数情况下是开发人员的偏爱?

谢谢

trans by 2020-02-02T01:41:01Z

tcp-WebSocket框架中的掩码是什么?

我正在研究websocket的实现,不知道框架中的遮罩含义是什么。

有人可以解释一下它的作用以及为什么推荐它吗?

  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-------+-+-------------+-------------------------------+
 |F|R|R|R| opcode|M| Payload len |    Extended payload length    |
 |I|S|S|S|  (4)  |A|     (7)     |             (16/64)           |
 |N|V|V|V|       |S|             |   (if payload len==126/127)   |
 | |1|2|3|       |K|             |                               |
 +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
 |     Extended payload length continued, if payload len == 127  |
 + - - - - - - - - - - - - - - - +-------------------------------+
 |                               |Masking-key, if MASK set to 1  |
 +-------------------------------+-------------------------------+
 | Masking-key (continued)       |          Payload Data         |
 +-------------------------------- - - - - - - - - - - - - - - - +
 :                     Payload Data continued ...                :
 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
 |                     Payload Data continued ...                |
 +---------------------------------------------------------------+
trans by 2020-01-29T17:49:16Z

首页> C#>如何创建一个System.IO.Stream流的实例

如何创建System.IO.Stream stream的实例。我的函数之一收到System.IO.Stream stream作为参数,并向其中写入一些内容。 那么,如何创建相同的新实例并将其传递给函数呢?

trans by 2020-01-20T07:54:43Z

类型-为什么C ++流使用char而不是unsigned char?

我一直想知道为什么C ++ Standard库使用char类型而不是unsigned char类型实例化basic_stream及其所有变体。 char意味着(取决于它是否已签名)您可能会对诸如get()之类的操作产生上溢和下溢,这将导致所涉及变量的实现定义值。 另一个示例是当您想使用其put函数将未格式化的字节输出到ostream时。

有任何想法吗?


注意:我仍然不太确定。 因此,如果您知道确切的答案,则仍然可以发布。

trans by 2020-01-13T19:07:55Z

在J中关闭流

为什么在离开程序之前无论如何都需要关闭FileInputStream(通常是流)? 否则会发生什么? 如果程序在输入流在程序中显式关闭之前停止,该流也不会自动关闭吗?

trans by 2020-01-13T03:06:41Z

.net-流作为WCF中的返回值-谁处理它?

假设我有以下WCF实现:

public Stream Download(string path)
{
    FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read);
    return stream;
}

谁负责处理返回的值? 毕竟,可能会发生网络故障,因此使用者可能无法处理它。

trans by 2020-01-08T18:15:44Z

http-我可以在没有内容长度标题的情况下将文件上传到S3吗?

我正在使用内存有限的机器上工作,我想以流方式将动态生成的(非磁盘)文件上传到S3。 换句话说,开始上传时我不知道文件大小,但是最后我会知道。 通常,PUT请求具有Content-Length标头,但也许可以解决此问题,例如使用多部分或分块的内容类型。

S3可以支持流式上传。 例如,在这里:

[http://blog.odonnell.nu/posts/streaming-uploads-s3-python-and-poster/]

我的问题是,在上传开始时无需指定文件长度就能完成相同的事情吗?

trans by 2020-01-05T12:01:22Z

CodeGo.net>流对象的ReadAllLines?

存在File.ReadAllLines,但没有Stream.ReadAllLines

using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Test_Resources.Resources.Accounts.txt"))
using (StreamReader reader = new StreamReader(stream))
{
    // Would prefer string[] result = reader.ReadAllLines();
    string result = reader.ReadToEnd();
}

是否存在执行此操作的方法,还是必须逐行手动遍历文件?

trans by 2019-12-23T21:37:48Z

C ++自定义流操纵器,可更改流中的下一项

在C ++中,要打印十六进制数字,请执行以下操作:

int num = 10;
std::cout << std::hex << num; // => 'a'

我知道我可以创建一个仅向流中添加内容的操纵器,如下所示:

std::ostream& windows_feed(std::ostream& out)
{
    out << "\r\n";
    return out;
}

std::cout << "Hello" << windows_feed; // => "Hello\r\n"

但是,如何创建一个类似于“ hex”的操纵器来修改要出现在流中的项目? 作为一个简单的示例,我将如何在此处创建plusone机械手?:

int num2 = 1;
std::cout << "1 + 1 = " << plusone << num2; // => "1 + 1 = 2"

// note that the value stored in num2 does not change, just its display above.
std::cout << num2; // => "1"
trans by 2019-11-18T21:33:04Z

java-如何将Process Builder的输出重定向到字符串?

我正在使用以下代码来启动流程构建器。我想知道如何将其输出重定向到字符串。

ProcessBuilder pb = new ProcessBuilder(System.getProperty("user.dir")+"/src/generate_list.sh", filename);
Process p = pb.start();

我尝试使用ByteArrayOutputStream,但似乎没有用。

trans by 2019-11-08T14:52:45Z

node.js-Node流中的结束事件和结束事件有什么区别

Node.js流同时触发endfinish事件。 两者有什么区别?

trans by 2019-11-06T01:31:54Z

如何从.NET流中获取MemoryStream?

我有以下构造函数方法,该方法从文件路径打开MemoryStream

MemoryStream _ms;

public MyClass(string filePath)
{
    byte[] docBytes = File.ReadAllBytes(filePath);
    _ms = new MemoryStream();
    _ms.Write(docBytes, 0, docBytes.Length);
}

我需要更改它以接受Stream而不是文件路径。 从Stream对象中获取MemoryStream的最简单/最有效的方法是什么?

trans by 2019-10-15T07:51:26Z

C#4.0-ASP.Net MVC-从HttpPostedFileBase读取文件而不使用s

我正在使用文件上载选项来上载文件。 我直接通过POST方法将这个文件从View发送到Controller,

    [HttpPost]
    public ActionResult Page2(FormCollection objCollection)
    {
        HttpPostedFileBase file = Request.Files[0];
    }

假设我正在上传一个记事本文件。 我如何读取此文件并将此文本附加到字符串生成器,而不保存该文件。

我知道在SaveAs之后该文件,我们可以读取此文件。 但是,如何不保存就从HttpPostedFileBase读取此文件?

trans by 2019-10-12T01:58:44Z

C#-流是什么意思? 有什么特点?

C ++和C#都使用这个词stream来命名许多类。

  • C ++:streamFileStreamMemoryStreamBufferedStreamostream_iteratoristream_iterator等。
  • C#:streamFileStreamMemoryStreamBufferedStream等。

因此,我很想知道stream是什么意思? 流的特点是什么? 我什么时候可以用这个术语来命名我的班级? 这仅限于文件I / O类吗?

有趣的是,据我所知,C在任何地方都不会使用该词。

trans by 2019-10-11T16:21:43Z

C#-HttpWebRequest和本机GZip压缩

当请求使用Gzip压缩的页面时,出现很多以下错误:

System.IO.InvalidDataException:   GZip页脚中的CRC与   从解压缩后计算出的CRC   数据

我正在使用本机GZipStream进行解压缩,并正在寻找解决方法。 考虑到这一点,是否有解决方法可以解决此问题或另一个GZip库(免费?),可以正确处理此问题?

我正在验证webResponse ContentEncoding为GZIP

更新5/11简化的代码段

//Caller
public void SOSampleGet(string url) 
{
    // Initialize the WebRequest.
    webRequest = (HttpWebRequest)WebRequest.Create(url);
    webRequest.Method = WebRequestMethods.Http.Get;
    webRequest.KeepAlive = true;
    webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
    webRequest.Headers.Add("Accept-Encoding", "gzip,deflate");
    webRequest.Referer = WebUtil.GetDomain(url);

    HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();    

    using (Stream stream = GetStreamForResponse(webResponse, READTIMEOUT_CONST))
    {
        //use stream
    }
}

//Method
private static Stream GetStreamForResponse(HttpWebResponse webResponse, int readTimeOut)
{
    Stream stream;
    switch (webResponse.ContentEncoding.ToUpperInvariant())
    {
        case "GZIP":
            stream = new GZipStream(webResponse.GetResponseStream(), CompressionMode.Decompress);
            break;
        case "DEFLATE":
            stream = new DeflateStream(webResponse.GetResponseStream(), CompressionMode.Decompress);
            break;

        default:
            stream = webResponse.GetResponseStream();
            stream.ReadTimeout = readTimeOut;
            break;
        }    
    return stream;
}
trans by 2019-10-11T09:33:44Z

javascript-Node.js将相同的可读流插入多个(可写)目标

我需要连续运行两个命令,这些命令需要从同一流中读取数据。将流传输到另一个流之后,缓冲区将被清空,因此我无法再次从该流中读取数据,因此无法正常工作:

var spawn = require('child_process').spawn;
var fs = require('fs');
var request = require('request');

var inputStream = request('http://placehold.it/640x360');
var identify = spawn('identify',['-']);

inputStream.pipe(identify.stdin);

var chunks = [];
identify.stdout.on('data',function(chunk) {
  chunks.push(chunk);
});

identify.stdout.on('end',function() {
  var size = getSize(Buffer.concat(chunks)); //width
  var convert = spawn('convert',['-','-scale',size * 0.5,'png:-']);
  inputStream.pipe(convert.stdin);
  convert.stdout.pipe(fs.createWriteStream('half.png'));
});

function getSize(buffer){
  return parseInt(buffer.toString().split(' ')[2].split('x')[0]);
}

要求对此抱怨

Error: You cannot pipe after data has been emitted from the response.

将inputStream更改为fs.createWriteStream会产生同样的问题。我不想写入文件,而是以某种方式重用请求产生的流(或与此相关的任何其他流)。

一旦完成流式传输,是否可以重用可读流?完成上述示例的最佳方法是什么?

trans by 2019-10-02T20:08:33Z

如何将整个流读入std :: string?

我正在尝试将整个流(多行)读入字符串。

我正在使用此代码,并且可以工作,但是却冒犯了我的风格感……当然,有一种更简单的方法吗? 也许使用stringstreams?

void Obj::loadFromStream(std::istream & stream)
{ 
  std::string s;

  std::streampos p = stream.tellg();  // remember where we are

  stream.seekg(0, std::ios_base::end); // go to the end
  std::streamoff sz = stream.tellg() - p;  // work out the size
  stream.seekg(p);        // restore the position

  s.resize(sz);          // resize the string
  stream.read(&s[0], sz);  // and finally, read in the data.


实际上,对字符串的const引用也会这样做,这可能会使事情变得更容易...

const std::string &s(... a miracle occurs here...)
trans by 2019-10-02T11:38:56Z

node.js-如何关闭可读流(结束之前)?

如何在Node.js中关闭可读流?

var input = fs.createReadStream('lines.txt');

input.on('data', function(data) {
   // after closing the stream, this will not
   // be called again

   if (gotFirstLine) {
      // close this stream and continue the
      // instructions from this if
      console.log("Closed.");
   }
});

这会比以下更好:

input.on('data', function(data) {
   if (isEnded) { return; }

   if (gotFirstLine) {
      isEnded = true;
      console.log("Closed.");
   }
});

但这不会停止阅读过程...

trans by 2019-09-23T20:29:32Z

c# - 将字节数组保存到fi

这个问题在这里已有答案:

  • 可以将Byte []数组写入C#中的文件吗?                                     8个答案

我有一个字节数组(实际上是IEnumerable),我需要将它保存到包含此数据的新文件中。

我怎么做?

我找到了一些答案,告诉我如何从中创建一个MemoryStream,但仍然无法将其保存到一个全新的文件中。

trans by 2019-09-16T06:48:07Z

.net - 使用C#中的流读取大型文本文件

我有一个很好的任务,就是如何处理大型文件被加载到我们应用程序的脚本编辑器中(就像我们用于快速宏的内部产品的VBA一样)。 大多数文件大约300-400 KB,这是很好的加载。 但是当它们超过100 MB时,这个过程很难(正如你所期望的那样)。

发生的事情是将文件读取并推入RichTextBox然后导航 - 不要过于担心这部分。

编写初始代码的开发人员只是使用StreamReader并且正在执行

[Reader].ReadToEnd()

这可能需要很长时间才能完成。

我的任务是打破这段代码,将其以块的形式读入缓冲区并显示一个带有取消选项的进度条。

一些假设:

  • 大多数文件将是30-40 MB
  • 文件的内容是文本(不是二进制),有些是Unix格式,有些是DOS。
  • 一旦检索到内容,我们就可以找出使用的终结符。
  • 一旦加载了在richtextbox中渲染所需的时间,没有人会担心。 这只是文本的初始加载。

现在提问:

  • 我可以简单地使用StreamReader,然后检查Length属性(so ProgressMax)并为set缓冲区大小发出Read并在后台worker中的while循环WHILST中迭代,这样它就不会阻塞主UI线程? 然后在完成后将stringbuilder返回到主线程。
  • 内容将转到StringBuilder。 如果长度可用,我可以用流的大小初始化StringBuilder吗?

这些(在您的专业意见中)是好主意吗? 我过去曾经有一些问题从Streams读取内容,因为它总会错过最后几个字节或者其他东西,但如果是这样的话,我会问另一个问题。

trans by 2019-09-15T19:38:23Z

上一页 1 2 3 4 5 下一页 共5页