各位大佬,有知道的言语一声,在此先谢过了。

WANGUFO168 2010-12-26 02:21:42
//程序执行后,在D盘找到文件用记事本打开后,查看保存的数据不全,不知为什么?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace arrayfile
{
class Program
{
static void Main()
{
/////////////////此段程序为存储数组数据到文件。
int[] m_Temp = new int[] { 168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 88, 77, 11, 22, 33, 44, 55, 66,77,88,99,00,11,22,33,44,55,66,77,
168, 126, 83, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 86, 33, 22};
////////////////////////////////////////////////////////////////////
FileStream ft = new FileStream("d:\\16.txt", FileMode.OpenOrCreate );
StreamWriter st = new StreamWriter(ft);
int i = 0;

foreach (int bt in m_Temp)
{

st.WriteLine((i++) +","+bt);
}
st.Flush();
}
}
}
...全文
130 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
WANGUFO168 2010-12-26
  • 打赏
  • 举报
回复
根据大家的回复,添加ft.Close(),问题解决,Thank.
wuyq11 2010-12-26
  • 打赏
  • 举报
回复
FIle.WriteAllText
当StreamWriter内部的缓冲区充满或调用Flush时,才会把数据写入Stream对象中。
StreamWriter 在内部缓冲数据,这需要调用 Close 或 Flush 方法将缓冲数据写到基础数据存储区。如果没有适当地调用 Close 或 Flush,StreamWriter 实例中缓冲的数据可能不会按预期写出。
  • 打赏
  • 举报
回复
FileStream和StreamWrite都要显示调用Close()
st.Flush()只是将缓冲区内容写进ft
ft在缓冲区满时会将内容写入文件,如果缓冲区没满,不会主动写入文件,除非调用ft.Flush()或者ft.Close(),(后一个函数调用时会自动调用前一个函数)
丢失数据的原因就是没有显示地指示ft将缓冲区内容写入文件
phil999 2010-12-26
  • 打赏
  • 举报
回复
把 st close 掉,最好放在 using 语句里

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧