我有一个简单的函数,它应该接收 Stream 对象并将其写入文件“result.txt”这是我的函数:
public void WriteToFile(Stream stream)
{
StreamReader reader = new StreamReader(stream);
stream.Position = 0;
FileInfo f = new FileInfo("result.txt");
FileStream fs = f.Create();
stream.CopyTo(fs);
stream.Position = 0;
var text = reader.ReadToEnd();
Console.WriteLine(text);
}
Run Code Online (Sandbox Code Playgroud)
但我在写入文件时遇到问题。结果 - 文件为空。但是,我在控制台中收到这行代码的输出:
var text = reader.ReadToEnd();
Console.WriteLine(text);
Run Code Online (Sandbox Code Playgroud)
在控制台中我得到简单而简短的 json 输出
{"startAt":0,"maxResults":0,"total":472,"issues":[]}
Run Code Online (Sandbox Code Playgroud)
此函数可以与其他较大的流配合使用,但这个 52 字节流只是不想写入文件。我究竟做错了什么?
当我尝试运行测试时,出现ImportError:无法从部分初始化的模块“libs.elastic_search_hunt”导入名称“Result”(很可能是由于循环导入)错误。但我在代码中没有看到任何循环导入。
我有一个名为elastic_search_hunt 的包,其中包含 3 个模块:
我还有__init__.py文件,其中包含以下文本:
from libs.elastic_search_hunt.elastic_query import Query
from libs.elastic_search_hunt.search_processor import SearchProcessor
from libs.elastic_search_hunt.elastic_query_result import Result
__all__ = ['Query', 'SearchProcessor', 'Result'] # I guess it does not have any effect
Run Code Online (Sandbox Code Playgroud)
elastic_query.py仅具有外部导入。
elastic_query_result.py相同。
search_processor.py具有以下导入:
from . import Query
from . import Result
Run Code Online (Sandbox Code Playgroud)
然后我有一个测试文件,它导入Query类:
from libs.elastic_search_hunt import Query
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,我收到以下错误:
test_query.py:2: in <module>
from libs.elastic_search_hunt import Query
..\src\libs\elastic_search_hunt\__init__.py:2: in <module>
from libs.elastic_search_hunt.search_processor import SearchProcessor
..\src\libs\elastic_search_hunt\search_processor.py:4: in <module> …Run Code Online (Sandbox Code Playgroud)