C#:如何将 Stream Reader 转换为 Int
C#: How to make Stream Reader to Int
我正在读取一个包含数字的文件,然后当我尝试将其转换为 Int 时出现此错误,System.FormatException:'Input string was not in a correct format.' 读取文件有效并且我已经测试所有这些,无论我尝试什么,它似乎都陷入困境。这是我到目前为止所做的:
StreamReader share_1 = new StreamReader("Share_1_256.txt");
string data_1 = share_1.ReadToEnd();
int intData1 = Int16.Parse(data_1);
然后如果解析在里面,它不会打印任何东西。
解析每一行
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
int intData1 = Int16.Parse(line);
}
正如我们在您的 post 中看到的那样,您的输入文件包含的不是一个 number,而是多个。因此,您需要遍历文件的所有行,然后尝试对字符串的每一行进行解析。
编辑:旧代码使用的是外部库。对于原始 C#,请尝试:
using (StringReader reader = new StringReader(input))
{
string line;
while ((line = reader.ReadLine()) != null)
{
// Do something with the line
}
}
此外,我鼓励您始终使用 TryParse 方法而不是 Parse 方法将字符串解析为数字。
您可以在 C# 中找到该常见问题的一些详细信息和不同实现:C#: Looping through lines of multiline string
您可以在 File
class 和 Linq 的帮助下简化代码并摆脱 StreamReader
:
// Turn text file into IEnumerable<int>:
var data = File
.ReadLines("Share_1_256.txt")
.Select(line => int.Parse(line));
//TODO: add .OrderBy(item => item); if you want to sort items
// Loop over all numbers within file: 15, 1, 48, ..., 32
foreach (int item in data) {
//TODO: Put relevant code here, e.g. Console.WriteLine(item);
}
我正在读取一个包含数字的文件,然后当我尝试将其转换为 Int 时出现此错误,System.FormatException:'Input string was not in a correct format.' 读取文件有效并且我已经测试所有这些,无论我尝试什么,它似乎都陷入困境。这是我到目前为止所做的:
StreamReader share_1 = new StreamReader("Share_1_256.txt");
string data_1 = share_1.ReadToEnd();
int intData1 = Int16.Parse(data_1);
解析每一行
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
int intData1 = Int16.Parse(line);
}
正如我们在您的 post 中看到的那样,您的输入文件包含的不是一个 number,而是多个。因此,您需要遍历文件的所有行,然后尝试对字符串的每一行进行解析。
编辑:旧代码使用的是外部库。对于原始 C#,请尝试:
using (StringReader reader = new StringReader(input))
{
string line;
while ((line = reader.ReadLine()) != null)
{
// Do something with the line
}
}
此外,我鼓励您始终使用 TryParse 方法而不是 Parse 方法将字符串解析为数字。
您可以在 C# 中找到该常见问题的一些详细信息和不同实现:C#: Looping through lines of multiline string
您可以在 File
class 和 Linq 的帮助下简化代码并摆脱 StreamReader
:
// Turn text file into IEnumerable<int>:
var data = File
.ReadLines("Share_1_256.txt")
.Select(line => int.Parse(line));
//TODO: add .OrderBy(item => item); if you want to sort items
// Loop over all numbers within file: 15, 1, 48, ..., 32
foreach (int item in data) {
//TODO: Put relevant code here, e.g. Console.WriteLine(item);
}