从c#中的文本文件中读取整数并将其写入数组
我试图从文本文件中读取像素值并生成一个图像文件。但首先我要确保我可以读取文件中的所有值。我使用了这段代码,但是输出遗漏了输入文件中的一些整数——最后一个。我不知道为什么!你能帮助我吗?代码如下:从c#中的文本文件中读取整数并将其写入数组,c#,image,file,integer,pixels,C#,Image,File,Integer,Pixels,我试图从文本文件中读取像素值并生成一个图像文件。但首先我要确保我可以读取文件中的所有值。我使用了这段代码,但是输出遗漏了输入文件中的一些整数——最后一个。我不知道为什么!你能帮助我吗?代码如下: namespace txtToImg { public partial class Form1 : Form { public Form1() { InitializeComponent(); TextWri
namespace txtToImg
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
TextWriter tw = new StreamWriter("D:\\out.txt");
string fileContent = File.ReadAllText("D:\\in.txt");
string[] integerStrings = fileContent.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
int[] integers = new int[integerStrings.Length];
//tw.Write(integerStrings.Length);
for (int n = 0; n < integerStrings.Length; n++)
{
integers[n] = int.Parse(integerStrings[n]);
tw.Write(integers[n]+" ");
}
}
}
}
名称空间txtToImg
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
TextWriter tw=新的StreamWriter(“D:\\out.txt”);
字符串fileContent=File.ReadAllText(“D:\\in.txt”);
string[]integerStrings=fileContent.Split(新字符[]{''},StringSplitOptions.RemoveEmptyEntries);
int[]integers=新的int[integerStrings.Length];
//tw.Write(integerStrings.Length);
for(int n=0;n
我同意Andrew的评论,您的streamWriter对象没有关闭,因此首先我会尝试一下。我做了下面的更改并尝试了您正在做的事情,我的输出文件包含了所有条目
using (TextWriter tw = new StreamWriter(@"D:\out.txt"))
{
string fileContent = File.ReadAllText(@"D:\in.txt");
string[] integerStrings = fileContent.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
int[] integers = new int[integerStrings.Length];
for (int n = 0; n < integerStrings.Length; n++)
{
integers[n] = int.Parse(integerStrings[n]);
tw.Write(integers[n] + " ");
}
}
使用(TextWriter tw=new StreamWriter(@“D:\out.txt”))
{
字符串fileContent=File.ReadAllText(@“D:\in.txt”);
string[]integerStrings=fileContent.Split(新字符[]{''},StringSplitOptions.RemoveEmptyEntries);
int[]integers=新的int[integerStrings.Length];
for(int n=0;n
好的,我刚刚运行了它,正如我所怀疑的,在循环之后您需要以下内容:
tw.Close();
我注意到StreamWriter对象似乎没有关闭。不确定这是否会有什么不同,但这是我能看到的唯一明显的东西。您确定这不应该是
fileContent.Split(newchar[]{','\n'},…
?我的整数是按空格分割的,我不需要“\n”或“,”。谢谢!安德鲁,非常感谢!我关闭了StreamWriter对象tw,它工作了!我不知道为什么,但它现在工作得很好!再次感谢!@AnaZlateva最好的方法是使用使用,就像下面Bearcat的建议一样。然后它会自动关闭至少,即使出现异常。就像Andrew建议的那样,我会将您的TextWriter包装在using语句中。它实现IDiposable,因此在正确处理右括号tw之后,您的out文件将被释放并可供其他进程访问。如果此答案解决了您的问题,请不要忘记选择它作为您问题的答案