Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js-找到值后读取流,然后关闭_Javascript_Node.js_Regex_Stream - Fatal编程技术网

Javascript Node.js-找到值后读取流,然后关闭

Javascript Node.js-找到值后读取流,然后关闭,javascript,node.js,regex,stream,Javascript,Node.js,Regex,Stream,所以我有一个想法,通过一个大文件中的流来捕获一些数据。但我不想将所有这些数据都捕获到内存中。因此,我想做的是打开一个流,等待找到匹配项,比如打开一个类ClassName{。然后关闭流,在找到结尾后停止读取}。然后返回所有已捕获的数据 我想用一个转换器来做这个,但是我不知道如何等到找到一个特定的字符串。我可以将当前找到的数据放入内存并不断检查是否匹配?但它似乎不太正确,我认为可能还有另一个解决方案,我在规范中找不到。我很高兴编写代码,如果有人能为我指出正确的方向,那将是非常好的。我认为您可以创建一

所以我有一个想法,通过一个大文件中的流来捕获一些数据。但我不想将所有这些数据都捕获到内存中。因此,我想做的是打开一个流,等待找到匹配项,比如打开一个类
ClassName{
。然后关闭流,在找到结尾后停止读取
}
。然后返回所有已捕获的数据


我想用一个转换器来做这个,但是我不知道如何等到找到一个特定的字符串。我可以将当前找到的数据放入内存并不断检查是否匹配?但它似乎不太正确,我认为可能还有另一个解决方案,我在规范中找不到。我很高兴编写代码,如果有人能为我指出正确的方向,那将是非常好的。

我认为您可以创建一个返回承诺的单一函数。然后,我可能会使用来逐行获取文件,扫描每一行,寻找我要查找的内容的开始和结束。当您收到要查找的内容的结尾时,您可以调用文件上的
.close()
,然后使用您收集的结果解析承诺。

可以嵌套括号,哪一个是匹配的正确结尾?我要做第一个没有转义的括号。因为在我使用它的情况下,我不会有嵌套的括号。这个类仅仅是一个例子,它可以让流点看起来像是一个很好的解决方案。只是想知道一旦找到“打开”是否可能,切换到逐字符读取。@mountaindrew-您可以逐字符读取(只需查看
fs
模块中的所有文件读取方法),但如果您是异步执行的,这可能比我建议的要复杂得多。一旦你有了一行,你就可以按你所寻找的任何一个字符逐个扫描它。@ MunTaTunRW——你通常不将流与其他类型的读混合,所以如果你按我建议的使用逐行流,你就不会切换到一次读取一个字节在中间。从下一行开始,一次只处理一个字符,这要容易得多。