如何将StreamReader读取的字符串按指定分隔符拆分存入数组
问题说明
你的代码报错核心原因是Split()是string类型的专属方法,你直接在StreamReader实例上调用了该方法,自然无法正常运行。你需要先通过StreamReader读取到文件的文本内容之后,再对文本执行拆分操作。
正确实现代码
小文件场景下可直接读取全部内容拆分,使用using语句会自动释放StreamReader占用的文件资源,避免句柄泄漏:
using StreamReader zahlenReader = new StreamReader(@"C:\Users\nicos\Desktop\TestOrdner\Writer.txt"); // 读取文件全部内容为字符串 string fileContent = zahlenReader.ReadToEnd(); // 按指定分隔符拆分字符串存入数组 string[] zahl = fileContent.Split(", ");
可选优化方案
- 如需过滤拆分后产生的空条目,可调整拆分参数:
string[] zahl = fileContent.Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries); - 如读取大文件,建议逐行读取处理,避免一次性加载全部内容占用过多内存:
List<string> zahlList = new List<string>(); using StreamReader zahlenReader = new StreamReader(@"C:\Users\nicos\Desktop\TestOrdner\Writer.txt"); string line; // 逐行读取直到文件末尾 while ((line = zahlenReader.ReadLine()) != null) { string[] lineParts = line.Split(", "); zahlList.AddRange(lineParts); } string[] zahl = zahlList.ToArray();
内容的提问来源于stack exchange,提问作者Ares
相关产品推荐
相关产品推荐

