读取时报错,“无法访问已关闭的文件”

fishoffly 2011-08-15 08:28:24
private void button2_Click(object sender, EventArgs e)
{
string fileName = "MyNew.data";
if (!(File.Exists(fileName)))
{
MessageBox.Show("当前文件不存在");
return;
}
string strData = "";
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(fs);
strData = reader.ReadString();
for (int i = 0; i < 200;i++ )
{
if (i == 0)
{
strData += reader.ReadUInt32().ToString();

}
else
{
strData += "||" + reader.ReadUInt32().ToString();
}
textBox2.Text = strData;
fs.Close();
reader.Close();
}
}


标红部分报的错“无访问已关闭的文件”,但是前面fs已经是打开模式了啊?谢谢各位大侠。谢谢
...全文
950 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
imaginecaosen 2011-08-18
  • 打赏
  • 举报
回复
解决了, breader.Close();//在前面
fstream.Close();

fishoffly 2011-08-15
  • 打赏
  • 举报
回复
凌晨5点写的,加班久了。迷迷糊糊的。哈哈哈,低级错误。
fishoffly 2011-08-15
  • 打赏
  • 举报
回复
呵呵呵,忘了括号了。谢了
dai78 2011-08-15
  • 打赏
  • 举报
回复
呵呵!这代码写的
huangwenquan123 2011-08-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 fishoffly 的回复:]
标红部分报的错“无访问已关闭的文件”,但是前面fs已经是打开模式了啊?谢谢各位大侠。谢谢
[/Quote]不是在i==0的时候抱错的,而是在else中,说明第一次连接,第二次被你关闭了。
dalmeeme 2011-08-15
  • 打赏
  • 举报
回复

fs.Close();
reader.Close();
移到循环外啊,否则循环一次就关闭了。
imaginecaosen 2011-08-15
  • 打赏
  • 举报
回复
我在关闭文件后又定义了一个新的FileStream对象来读取文件,为什么还是提示“无法访问关闭的文件”?

namespace BinaryFileTest
{
class Program
{
static void Main(string[] args)
{
string filepath = @"D:\Test13.001";
if(!File.Exists(filepath))
{
Console.WriteLine("file not exist!");
return;
}
FileStream fstream=new FileStream (filepath ,FileMode.Open,FileAccess.Read);
BinaryReader breader=new BinaryReader (fstream);
Console.WriteLine("filelength" + fstream.Length.ToString()+"bytes");
string outstr;//用于输出的字符串
outstr=breader.ReadInt16().ToString ();
Console.WriteLine("[1] HEDER VERSION: "+outstr);
fstream.Close();
breader.Close();

//重新定义
FileStream fstream2 = new FileStream(filepath, FileMode.Open, FileAccess.Read);
BinaryReader breader2 = new BinaryReader(fstream2,Encoding.Default);
breader2.BaseStream.Position = 58;
char[] cc = new char[8];
for (int i = 0; i < 8; i++)
cc[i] = breader.ReadChar();
Console.WriteLine(cc);
fstream2.Close();
breader2.Close();
}
}
}
谁能帮我分析分析??
2020.04.02 F 修复 32 位系统无法编译小程序、提示重启耗过久的问题 反馈详情 F 修复 使用 cli 打开 project.config.json 中 projectname 为中文的项目会一直卡在初始化应用通信能力的问题 反馈详情 F 修复 ts 项目编译前命令无限执行的问题 反馈详情 F 修复 PC 端模拟器的 touchend 事件回调参数 changedTouches 为空的问题 反馈详情 2020.03.25 更新说明 A 新增 云开发控制台支持开通按量付费 A 新增 云开发支持数据库备份与回档(还原)详情 A 新增 支持小程序自动化多帐号调试 A 新增 显示灰度中的基础库以及基础库支持的客户端版本 详情 A 新增 下发测试基础库 详情 A 新增 支持模拟 API 的返回内容 详情 A 新增 支持同重命名多个同名的文件 A 新增 真机调试出现异常,可手动操作重试 A 新增 增加工具加载 loading 展示 A 新增 模拟器支持终止 A 新增 支持小游戏代码补全 U 优化 模拟器工具栏及状态栏界面 U 优化 云开发控制台监控图表展示 U 优化 模拟器添加边框 反馈详情 U 优化 更新命令行和 HTTP v2 版本 详情 F 修复 修改 cloudFunctionRoot 会出现文件找不到的问题 反馈详情 F 修复 不能正确打开已被删除文件夹的项目的问题 F 修复 点击菜单工具栏管理无反应的问题 F 修复 工具外修改项目配置 cli 上传不生效的问题 F 修复 工具预览/上传提示文件已经存在的问题 反馈详情 F 修复 调试器放大会导致 inspect 按钮样式异常的问题 F 修复 模拟器工具栏样式异常 F 修复 wx.addPhoneContact顶部按钮显示错误的问题 反馈详情 F 修复 标题栏文字过长覆盖胶囊按钮的问题 F 修复 文件系统读取代码包内文件规则与真机不一致的问题 F 修复 关闭多帐号调试窗口 tabbar 内的 icon 无法加载的问题 反馈详情 F 修复 预览上传错误提示无效的 json 文件 反馈详情 F 修复 使用非等宽字体光标可能错位的问题 F 修复 某些项目可能出现 wxml not found 的问题 F 修复 真机调试 Appdata 和 WXML 面板可能显示空白的问题 F 修复 弹出模拟器 getMenuButtonBoundingClient 调用结果为空的问题 A 新增 支持小程序自动化截图功能 A 新增 编辑器面包屑导航条支持自定义快捷导航 A 新增 模拟小程序进程销毁重启 A 新增 编辑器行内错误和警告提示 A 新增 Mac 和 Windows 微信的模拟器类型 U 优化 1.02.1912261 的安装包结构 U 优化 MacOS 版关闭项目窗口,显示项目列表窗口 U 优化 插件开发模式下 miniprogramRoot 下 app.json 中插件 provider 与项目 appid 一致,version 必须为 "dev" F 修复 1.02.1912261 引入的多帐号调试 tabBar 图标无法加载的问题 F 修复 1.02.1912261 引入的 jsserverRoot 目录右键菜单缺失部分选项的问题 F 修复 公众号网页调试中,Base64 图片无法通过调试器打开的问题 反馈详情 F 修复 cli 调用自动预览无法使用自定义编辑条件的问题 F 修复 Windows 版无法使用录音功能的问题 F 修复 插件开发模式下,插件页面配置不生效的问题 F 修复 小游戏开放数据域使用增强编译报错的问题 F 修复 Windows 版某些情况下无法显示项目窗口的问题 F 修复 切换 cloudfunctionsRoot 无法同步云函数的问题 反馈详情 F 修复 Wxml 面板丢失 text 标签子节点的问题 F 修复 上传文件体积大小提示错误问题 反馈详情 F 修复 使用非等宽字体光标可能错位的问题 F 修复 文件系统 api 读取代码包内文件规则与真机不一致的问题 A 新增 编辑器全局替换 A 新增 编辑器分栏 A 新增 编辑器文件多选操作和拖动到文件夹 A 新增 编辑器多选操作和拖动到文件夹 A 新增 编辑器代码大纲 A 新增 编辑器文件对比 A 新增 选取 android 设备上的 profile 文件进行分析 详情 A 新增 WXML 面板支持自定义组件数据查看与实修改 A 新增 WXML 面板支持使用键盘 (上下左右) navigate the DOM tree A 新增 WXML 面板
一、修改记录 修复的Bug 3744 搜索需求后报错 3740 回收站中删除的构建任务对象类型和对象名称未正确显示 3737 CNVD-C-2020-287511 CNVD-C-2020-286783 CNVD-C-2020-286963 禅道CMS存在命令执行漏洞(漏洞名称相同位置不同) 3732 运维模块下的上线步骤,点击标题进入详情页,历史记录中的操作没有转换对应的语言项 3730 组织用户的列表页面表头和展示内容排版样式不齐 3725 Linux一键安装包“Retart”改为“Restart” 3722 用户需求上传附件没有显示在产品附件库中 3720 版本移除关联的需求Bug后数据库中存储的格式不一致 3719 测试单无法修改所属产品 3715 批量指派需求输入框无输入进行搜索 3714 分页功能数据计算错误 3713 CNVD-C-2020-281405 禅道CMS存在命令执行漏洞 3708 任务列表页面和任务详情页面子任务的操作按钮顺序不一致 3707 我的地盘首页添加待办报错 3704 编辑器中保存锚点name丢失 3703 版本条件搜索报错 3701 用户没有项目访问权限,可以通过组织-用户看到相关信息 3699 内禅-任务相关用例详情页底部报错 3698 编辑任务页面设置必填项后父任务编辑无法正常保存 3697 用例转Bug重现步骤必填识别错误 3693 组织用户查看带减号的帐号信息跳转错误 3692 草稿状态需求变更,由谁评审和指派给会清空 3691 待办转任务,待办的描述信息没有同步到任务中 3690 集成中做代码评审生成的Bug类型有误 3689 测试单下的用例模块显示问题 3688 批量编辑任务关闭间没有更新 3687 编辑任务手动设置的关闭间没有分秒自动保存的有分秒 3686 Bug导出日期没有分秒 3685 报告详情页面和编辑页面统计数据显示不一致 3684 需求细分页面字段展示错误 3680 测试单列表页面显示问题 3679 通知邮件中的链接地址与禅道中填写的不一致 3678 关联Bug页面ID显示问题 3677 重新生成测试单,测试轮次与之前选择的不一致 3675 测试报告编辑页面和查看页面数据不一致 3674 编辑模块修改所属产品下的某个分支未起效 3669 S10 任务历史记录里记录了2次关闭操作 3668 用例导出内容不正确 3667 我的地盘-Bug-指派给中没有显示指派给自己的Bug 3666 我的地盘-我评审的需求中没有记录批量评审过的需求 3660 项目主页工信息统计不准确 3659 QTVA-2020-1548464 禅道存在命令执行漏洞 3658 CNVD-C-2020-224623 _关于禅道后台存在命令执行漏洞的情况通报 3657 CNVD-C-2020-258606 _关于禅道CMS存在任意文件读取漏洞的情况通报 3656 CNVD-C-2020-255650关于禅道最新开源版12.4.3及以下存在任意文件下载漏洞的情况通报 3649 CNVD-2017-04121--青岛易软天创网络科技有限公司禅道项目管理软件后台存在设计缺陷漏洞 3646 测试单中选择模块后用例无法正常显示 3644 二次开发数据库中名称和实际功能名称不一致 3642 测试单按复制测试单关联用例展示数据不准确 3640 Bug激活历史记录不准确 3636 批量编辑任务指派人字段内容未显示 3629 项目-Bug创建Bug默认指派人没有正常显示出来 3627 任务模块显示错误 3624 父任务状态显示不对 3568 Windows和Linux一键安装包切换日语后页面未能正确跳转
一、修改记录 修复的Bug 3744 搜索需求后报错 3740 回收站中删除的构建任务对象类型和对象名称未正确显示 3737 CNVD-C-2020-287511 CNVD-C-2020-286783 CNVD-C-2020-286963 禅道CMS存在命令执行漏洞(漏洞名称相同位置不同) 3732 运维模块下的上线步骤,点击标题进入详情页,历史记录中的操作没有转换对应的语言项 3730 组织用户的列表页面表头和展示内容排版样式不齐 3725 Linux一键安装包“Retart”改为“Restart” 3722 用户需求上传附件没有显示在产品附件库中 3720 版本移除关联的需求Bug后数据库中存储的格式不一致 3719 测试单无法修改所属产品 3715 批量指派需求输入框无输入进行搜索 3714 分页功能数据计算错误 3713 CNVD-C-2020-281405 禅道CMS存在命令执行漏洞 3708 任务列表页面和任务详情页面子任务的操作按钮顺序不一致 3707 我的地盘首页添加待办报错 3704 编辑器中保存锚点name丢失 3703 版本条件搜索报错 3701 用户没有项目访问权限,可以通过组织-用户看到相关信息 3699 内禅-任务相关用例详情页底部报错 3698 编辑任务页面设置必填项后父任务编辑无法正常保存 3697 用例转Bug重现步骤必填识别错误 3693 组织用户查看带减号的帐号信息跳转错误 3692 草稿状态需求变更,由谁评审和指派给会清空 3691 待办转任务,待办的描述信息没有同步到任务中 3690 集成中做代码评审生成的Bug类型有误 3689 测试单下的用例模块显示问题 3688 批量编辑任务关闭间没有更新 3687 编辑任务手动设置的关闭间没有分秒自动保存的有分秒 3686 Bug导出日期没有分秒 3685 报告详情页面和编辑页面统计数据显示不一致 3684 需求细分页面字段展示错误 3680 测试单列表页面显示问题 3679 通知邮件中的链接地址与禅道中填写的不一致 3678 关联Bug页面ID显示问题 3677 重新生成测试单,测试轮次与之前选择的不一致 3675 测试报告编辑页面和查看页面数据不一致 3674 编辑模块修改所属产品下的某个分支未起效 3669 S10 任务历史记录里记录了2次关闭操作 3668 用例导出内容不正确 3667 我的地盘-Bug-指派给中没有显示指派给自己的Bug 3666 我的地盘-我评审的需求中没有记录批量评审过的需求 3660 项目主页工信息统计不准确 3659 QTVA-2020-1548464 禅道存在命令执行漏洞 3658 CNVD-C-2020-224623 _关于禅道后台存在命令执行漏洞的情况通报 3657 CNVD-C-2020-258606 _关于禅道CMS存在任意文件读取漏洞的情况通报 3656 CNVD-C-2020-255650关于禅道最新开源版12.4.3及以下存在任意文件下载漏洞的情况通报 3649 CNVD-2017-04121--青岛易软天创网络科技有限公司禅道项目管理软件后台存在设计缺陷漏洞 3646 测试单中选择模块后用例无法正常显示 3644 二次开发数据库中名称和实际功能名称不一致 3642 测试单按复制测试单关联用例展示数据不准确 3640 Bug激活历史记录不准确 3636 批量编辑任务指派人字段内容未显示 3629 项目-Bug创建Bug默认指派人没有正常显示出来 3627 任务模块显示错误 3624 父任务状态显示不对 3568 Windows和Linux一键安装包切换日语后页面未能正确跳转

110,536

社区成员

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

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

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