StreamWriter 系统突然关闭时在文件末尾写入 NUL 字符

2023-11-21

我正在编写一些测试应用程序,以使用以下命令将一些文本写入文本文件StreamWriter。在执行时WriteLine方法系统突然关闭。重新启动机器后,我发现文件末尾有很多 NUL 字符。

我查了很多网站,包括MSDN,都没有找到解决这个问题的方法。

任何人都可以帮我解决这个问题吗?

如果我们执行以下步骤,可以轻松重现这一点:

  1. 创建 Windows 应用程序并在其上放置一个按钮控件。

  2. 在按钮单击事件处理程序中编写以下代码:

    私人无效button1_Click(对象发送者,EventArgs e)

     {
         string str = "Welcome to the C Sharp programming world with a test application using IO operations.";
         StreamWriter sw = new StreamWriter(fileName, true, Encoding.Unicode, str.Length);
         sw.WriteLine(str);
         sw.Close();        
     } 
    
  3. 运行应用程序并连续单击按钮(直到机器关闭才停止),然后按 PC 的关机按钮。

  4. 重新启动电脑并检查文件。它包含以下文本:

欢迎来到 C Sharp 编程世界,这里有一个使用 IO 操作的测试应用程序。

欢迎来到 C Sharp 编程世界,这里有一个使用 IO 操作的测试应用程序。

欢迎来到 C Sharp 编程世界,这里有一个使用 IO 操作的测试应用程序。

欢迎来到 C Sharp 编程世界,这里有一个使用 IO 操作的测试应用程序。

欢迎来到 C Sharp 编程世界,这里有一个使用 IO 操作的测试应用程序。

欢迎来到 C Sharp 编程世界,这里有一个使用 IO 操作的测试应用程序。

努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努努

NUL字符会出现在Notepaad++中,而我们在普通记事本中看不到这些字符。


那个会发生。当您首先附加文件时,其大小会在目录中进行更正(这在 NTFS 中是事务性的),然后写入实际的新数据。如果您关闭系统,您很可能会得到一个附加有大量空字节的文件,因为与元数据(文件大小)写入不同,数据写入不是事务性的。

这个问题没有绝对的解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

StreamWriter 系统突然关闭时在文件末尾写入 NUL 字符 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • 动画剪辑:矩形属性?

    我想为 css 属性设置动画clip rect与 jQuery 的 animate 但无法找到这是否可能在任何地方 试过 img1 animate clip rect 1px 945px 499px 1px 300 没有任何运气 有人知道吗
  • 在 C 中转换为 ASCII

    使用微控制器 PIC18F4580 我需要收集数据并将其发送到 SD 卡以供以后分析 它收集的数据的值介于 0 到 1023 或 0x0 到 0x3FF 之间 所以我需要做的是将 1023 转换为以 10 为基数的 ASCII 值字符串 0
  • 使用 AutoIt 发送电子邮件

    如何使用 AutoIt 发送电子邮件 只需要一个干净的示例和解释 其中包含 to from subject message 使用内置代码有两种主要方法 INetMail 或 INetSmtpMail 以下是帮助文件中的简单代码示例 如果您对
  • 从 iOS 应用程序上传文件到 ftp

    我读了SimpleFTP示例但我需要一个比这个文档更好的例子 我在 Google 上搜索了一些其他示例 但我发现的所有网站最终都引用了 Apple 文档 而且我还没有找到任何其他没有引用的内容 有人能帮我吗 谢谢 为 iOS 编写了一个易于
  • Global const string& 对我来说很难闻,它真的安全吗?

    我正在审查一位同事的代码 我发现他在全局范围内定义了几个常量 如下所示 const string SomeConstant This is some constant text 就我个人而言 这对我来说很糟糕 因为该引用指的是我假设是从给定
  • AFNetworking后台文件上传

    我想从我的应用程序将文件上传到我的服务器 当应用程序处于活动状态时 下面的代码运行良好 如果我按主页按钮或打开另一个应用程序 上传就会停止 我激活了后台获取但仍然无法工作 Afnetworking 有后台支持 但我不知道如何在我的代码中实现
  • 将foreignKey小部件添加到django-import-export

    我正在尝试将数据导入到我的模型之一 但它失败了 因为我正在尝试上传foreignKey Id 而不是导入导出创建的迭代数 模型 py from django db import models from import export impor
  • 将数字四舍五入到最接近的 5 的倍数

    有谁知道如何将数字四舍五入到最接近的 5 倍数 我找到了一种算法将其四舍五入到最接近的 10 倍数 但我找不到这个算法 这样就可以做十 个了 double number Math round len 5 10 0 10 0 要四舍五入到最接
  • @login_required Flask 应用程序出现问题

    我创建了一个处理身份验证的蓝图 该蓝图使用 Flask Login 并具有以下内容 以及更多未显示的代码 在蓝图中我有以下内容 from flask ext login import LoginManager from flask ext
  • Qt Creator 5 - 未设置调试器

    我设置了一个编译器微软 Visual C x86 编译器 但现在我有这个错误 编译器 Microsoft Visual C x86 Compiler 无法生成 Qt 版本的代码 警告 没有设置调试器 我想我需要设置调试器 但我不知道将 调试
  • 如何重命名 pandas 数据框的第一列?

    我在互联网上多次遇到这个问题 但除了以下几个之外 答案并不多 无法重命名 pandas DataFrame 中的第一列 我使用以下方法达到了相同的目的 df df rename columns df columns 0 Column1 有没
  • 在Oracle中将时差转换为给定格式

    我如何转换EVENT DATE B EVENT DATE A这是要串连的天数HH MM format 另一种方法 一个查询可以在不同的日子进行 with tt as select numToDsinterval EVENT DATE B E
  • Perl 匹配仅返回“1”。布尔值?为什么?

    这一定是显而易见的 但我只是没有看到它 我有一个包含数千条记录的文档 如下所示 Row 1 DATA 0 37755442 1 DDG00000010 2 FALLS 3 IMAGE 4 Defect 5 3 6 CLOSED 我已经设法将
  • 使用持久通知允许用户返回到正在运行的 Android 应用程序

    我正在开发一个包含大量活动的应用程序 我想创建一个持久通知 或多或少 说 AppName 返回AppName 每当我的后台服务运行时都会出现该通知 创建和处理通知没有问题 现在 用户可以在多个屏幕 活动中的任何一个上 离开应用程序 然后希望
  • Dagger with Hilt 将 ActivityContext 从模块注入适配器中

    我正在使用匕首和刀柄 我想将 ActivityContext 从模块注入到适配器 但我收到此错误 ANTLR Tool version 4 5 3 used for code generation does not match the cu
  • 无法使用内置 BrokerService.stop 调用关闭嵌入式 activeMQ 服务

    我一直在使用嵌入式 activeMQ 服务器配置 配置与说明嵌入式 activeMQ 服务器 侦听器概念的示例非常相似 作为应用程序的一部分 我有一个监视目录的监视线程 我不必终止进程来关闭 activeMQ 服务器 而是引入了对 STOP
  • Android 编码与开关(字符串)

    我正在 eclipse 上开发一个 android 应用程序 当我尝试一些代码时 比如 switch String 它给了我以下错误 Cannot switch on a value of type String for source le
  • 如何在 Android 中向 TextView 添加换行符?

    当我定义一个TextView in xml 如何添加新行 n似乎不起作用
  • Spring Data JPA 中的一对多关系

    我希望在两个实体 消费者和政策 之间建立一对多关系 一个消费者应该有多个保单 这是我想要的 Consumer JSON 对象的示例 id 1 name Peter endpoint 123 456 778 policies id 1 nam
  • StreamWriter 系统突然关闭时在文件末尾写入 NUL 字符

    我正在编写一些测试应用程序 以使用以下命令将一些文本写入文本文件StreamWriter 在执行时WriteLine方法系统突然关闭 重新启动机器后 我发现文件末尾有很多 NUL 字符 我查了很多网站 包括MSDN 都没有找到解决这个问题的