我有一个位于Azure Data Lake Store上的文件,我正在编写一个apiendpoint以将该文件的内容作为字符串检索。我遇到的问题是,当我尝试读取流时,我得到一个空字符串。这是我正在使用的:
[HttpGet("api/rundata/solutions/{solutionId}/dates/{dateId}/files/{fileId}")]
public async Task<IActionResult> GetFile(string solutionId, string dateId, string fileId, string account, string key, string mode="data")
{
var dataLakeFileSystemClient = _dataLakeTools.GetDataLakeFileSystemClient(account, key, "rundata");
var downloadResponse = await _dataLakeTools.DownloadFileAsync(dataLakeFileSystemClient, $"{solutionId}/{dateId}", fileId);
//returns the file itself
if (mode.Equals("file"))
{
using (var memoryStream = new MemoryStream())
{
downloadResponse.Value.Content.CopyTo(memoryStream);
var fileBytes = memoryStream.ToArray();
memoryStream.Close();
return File(fileBytes, "application/octet-stream");
}
}
//returns the contents of the file as a string
else if (mode.Equals("data"))
{
using (var memoryStream = new MemoryStream())
{
downloadResponse.Value.Content.CopyTo(memoryStream);
using(var streamReader = new StreamReader(memoryStream))
{
string contents = streamReader.ReadToEnd();
return Ok(contents);
}
}
}
return BadRequest();
}
目前,返回文件的响应工作正常,我可以在PC上打开文件并读取其内容。使用StreamReader返回文件内容的响应返回空字符串。
我怀疑memoryStream
位置设置为CopyTo
。您可以使用查找
重置内存流
:
将当前流中的位置设置为指定值。
downloadResponse.Value.Content.CopyTo(memoryStream);
memoryStream.Seek(0,SeekOrigin.Begin);
或者传递<code>downloadResponse.Value。内容进入StreamReader
constructor,我假设它只是一个NetworkStream
。
using(var streamReader = new StreamReader(downloadResponse.Value.Content))
我有以下字符串 从上面,我需要提取下面的文字 第一个数字和文本之间总是有一个空格,所以2129和This is page1之间有一个空格。有时第一个数字被省略,就像2129不见了。文本和下一个数字之间总是有一个空格,所以在This is a Page1和6754001之间有一个空格,有时可能有两个空格。我只需要提取这些线这些线总是从空格开始,所以它可以 它们的后面总是有一个空格,有时是一个空格,有
所谓字符串,指的就是字符的序列或者“串”。我们要在字符串上执行的第一个操作是提取所有字符中的一个。C++使用方括号([和])执行该操作: apstring fruit = "banana"; char letter = fruit[1]; cout << letter << endl; 表达式fruit[1]表明我们要从字符串变量fruit中取得编号为1的字符,并将结果保存在字符变量letter
问题内容: 我要执行以下操作。 我想要所有超链接的行为进行ajax调用并检索html。 不幸的是,您不能简单地用ajax响应中收到的html替换当前的html。 如何仅获取ajax响应的标记中的内容,以便 仅 替换现有html中正文的内容。 编辑:开始标记并不总是这样,有时可能会有一个类,例如 问题答案: 如果我对您的理解正确,请使用正则表达式在body标签之间获取内容。 编辑 根据您在下面的评论
问题内容: 我想从包含数字和字母的字符串中提取数字: 我想在这里获取号码或任何其他号码。 问题答案:
问题内容: 我已经在下面使用过一段时间了。至少在我访问过的网站上,它似乎是分布最广的。 在Java中,是否有更好/不同的方式将文件读取为字符串? 问题答案: 读取文件中的所有文本 Java 11添加了方法来读取小文件,以String保留行终止符: 对于介于Java 7和11之间的版本,这是一个紧凑而健壮的习惯用法,它包装在实用程序方法中: 从文件中读取文本行 Java 7添加了一种便捷方法,可以将
问题内容: 我正在尝试找到一种可靠的解决方案,以从字符串中提取URL。我有一个站点,用户可以在其中回答问题,并且可以在源框中输入他们的信息源,并允许他们输入网址。我想提取该URL并使其成为超链接。类似于Yahoo Answers的操作方式。 有谁知道可以做到这一点的可靠解决方案? 我发现的所有解决方案都适用于某些URL,但不适用于其他URL。 谢谢 问题答案: 约翰·格鲁伯(John Gruber