首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >只需在C#中读写文件就会损坏数据

只需在C#中读写文件就会损坏数据
EN

Stack Overflow用户
提问于 2020-04-17 18:34:52
回答 2查看 58关注 0票数 0

如果有人能帮我解决这个问题,我会很高兴的。我有一个文件,里面有一些我不确定的数据,但我猜数据格式是UFT8,我在C#中读取它,没有任何更改,将它写回文件中,但随后文件中的数据被损坏。

以下是我使用UTF8编码从NotePad++输出的文件:

然后我读取它,没有任何变化,将它写回文件中,但当我在NotePad++中重新打开它时,我看到了以下输出:

下面是我用C#编写的读写代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private void btnRead_Click(object sender, RoutedEventArgs e)
{
    var fs = new FileStream(path + name, FileMode.Open, FileAccess.Read);
    var br = new BinaryReader(fs);
    buffer = br.ReadBytes((int)fs.Length);
    MyTextBox.Text = Encoding.UTF8.GetString(buffer);
}

private void btnWrite_Click(object sender, RoutedEventArgs e)
{
    var bw = new BinaryWriter(new FileStream(path + name + ".modified", FileMode.Create));
    bw.Write(BytesToString(buffer));
    bw.Close();
}

static string BytesToString(byte[] bytes)
{
    using (MemoryStream stream = new MemoryStream(bytes))
    {
        using (StreamReader streamReader = new StreamReader(stream))
        {
            return streamReader.ReadToEnd();
        }
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-20 11:09:53

所以我找到了我的问题所在。事实上,我正在以二进制格式读取文件,但当我写回它时,我将二进制文件转换为字符串,这导致了问题。因此,如果我只使用下面的代码,一切都会正常工作,因为在编写期间,它不会将二进制文件转换为字符串:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private void btnWrite_Click(object sender, RoutedEventArgs e){
  var bw = new BinaryWriter(new FileStream(path + name + ".modified", FileMode.Create));
        bw.Write(buffer);}
票数 0
EN

Stack Overflow用户

发布于 2020-04-17 19:23:18

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61278386

复制
相关文章
C# 读写Ini文件
ini文件在Win95以前比较盛行,之后由于出册表等技术的出现,ini技术主键退居二线,不过对于一些小项目,读写ini文件还是很适用的。
用户9127601
2021/11/01
1.7K0
【c#】读写txt文件
最近项目又遇到了一个问题,最初我把上传失败的记录保存在配置文件中,这个失败的记录有上百条,导致在配置文件中的value很长,这样在VS中就破坏了xml的结构,导致xml不能正确解析。最后决定将这些上传失败的记录单独保存在一个txt文本中,这样就需要对txt进行读写。方法其实还是很简单的,但是读写完一定要记得释放资源,否则就会报错的。主要方法如下:
全栈程序员站长
2022/08/10
1.2K0
在Node.js中读写文件
本文翻译自Reading and Writing Files in Node.js
ccf19881030
2020/10/29
5.3K0
只需在Vim或Neovim编辑器中打开文件,您的Linux就会被黑客攻击
如果您最近没有更新Linux操作系统,尤其是命令行文本编辑器实用程序,甚至不要尝试使用Vim或Neovim查看文件的内容。 安全研究员Armin Razmjou最近在Vim和Neovim中发现了一个高严重性的任意操作系统命令执行漏洞(CVE-2019-12735)- 两个最流行和最强大的命令行文本编辑应用程序,预装了大多数基于Linux的操作系统。 在Linux系统上,Vim编辑器允许用户创建,查看或编辑任何文件,包括文本,编程脚本和文档。
天钧
2019/07/25
1.7K0
只需在Vim或Neovim编辑器中打开文件,您的Linux就会被黑客攻击
C# 文件读写系列三
1、读写文本文件 在C# 文件读写系列二中列举了相当多的读写文本文件的方法,大致有以下几种: (1)、通过静态类File的静态方法来进行文本文件的读写,主要有ReadAllBytes()、ReadAllLines()、ReadAllText()、WriteAllBytes()、WriteAllLines()、WriteAllText(). (2)、通过FileStream的实例方法,主要有Read()、Write() 本文将介绍两个级别更加高的类来完成文本文件的读写.==========>StreamRea
郑小超.
2018/01/26
1.8K0
C# ini文件读写类
VC中提供了API函数进行INI文件的读写操作,但是微软推出的C#编程语言中却没有相应的方法,下面是一个C# ini文件读写类, 从网上收集的,很全,就是没有对section的改名功能,高手可以增加一个。 using System; using System.IO; using System.Runtime.InteropServices; using System.Text; using System.Collections; using System.Collections.Specialized;
hbbliyong
2018/03/06
1.1K0
C# 文件读写系列二
读取文件原则上非常简单,但它不是通过FileInfo和DirectoryInfo来完成的,关于FileInfo和DirectoryInfo请参考C# 文件操作系列一,在.Net Framework4.5中可以通过File类来读写文件,在.Net Framework2.0推出之前,读写文件是相当费劲的,但是在.Net Framework2.0推出之后,它对File类进行了扩展,只要编写一行代码,就能对文件进行读写,下面通过一个窗体应用程序来展示文件的读写功能。 一、文件读取 1、通过File类的静态方法Rea
郑小超.
2018/01/26
1.3K0
C#快速读写文件
一、写入 //在应用程序当前目录下的File1.txt文件中追加文件内容,如果文件不存在就创建,默认编码 File.AppendAllText("Fil
张果
2018/01/04
3.7K0
nodejs中如何使用流数据读写文件
在nodejs中,可以使用fs模块的readFile方法、readFileSync方法、read方法和readSync方法读取一个文件的内容,还可以使用fs模块的writeFile方法、writeFileSync方法、write方法和writeSync方法向一个文件中写入内容。
前端_AWhile
2019/08/29
6.2K0
服务器文件系统损坏,只需要这个教程轻松解决
今天为大家介绍一个Linux服务器数据恢复成功案例,本次服务器数据恢复物理服务器请款如下:客户故障服务器为一台X3850服务器,这个服务器是由4块146G SAS硬盘组成的RAID5作为存储介质,文件系统全都是reiserfs。我们首先经过分析发现了之前的硬盘数据组织结构是由一个不到100M的boot分区,后接一个271G的LVM卷,之后是2G的swap分区。LVM卷中直接划分了一个reiserfs文件系统,作为根分区。
北亚数据恢复中心
2020/02/05
1.4K0
服务器文件系统损坏,只需要这个教程轻松解决
添加/删除/读写c盘文件——c#
  有时候我们为自己的程序添加配置文件,如tet、ini、xml等文件,又或者保存软件运行时的日志
vv彭
2021/01/18
2.7K0
C# dotnet 使用 FileStream 随机文件读写
本文说的随机文件读写的随机的反义词是顺序,这里的随机文件读写对应顺序文件读写。表示文件可以不按照顺序进行读写
林德熙
2020/07/28
9940
C# 使用 NPOI 库读写 Excel 文件
NPOI 是开源的 POI 项目的.NET版,可以用来读写Excel,Word,PPT文件。在处理Excel文件上,NPOI 可以同时兼容 xls 和 xlsx。官网提供了一份 Examples,给出了很多应用场景的例子,打包好的二进制文件类库,也仅有几MB,使用非常方便。
跟着阿笨一起玩NET
2018/09/19
9K1
C#在WINForm程序中创建XML文件
string path = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
zls365
2021/02/26
2.4K0
python中的文件读写
读写文件是日常开发中最高频的操作,从文件中读取你需要处理的数据,根据处理逻辑编写代码,将处理好之后的结果保存到结果文件中。
生信修炼手册
2020/05/11
1.1K0
numpy中的文件读写
在实际开发中,我们需要从文件中读取数据,并进行处理。在numpy中,提供了一系列函数从文件中读取内容并生成矩阵,常用的函数有以下两个
生信修炼手册
2020/06/18
2.1K0
C#读写文本文件代码片段
读取文本文件代码片段 using System; using System.IO; public class TestReadFile { public static void Main(String[] args) { // Read text file C:\temp\test.txt FileStream fs = new FileStream(@c:\temp\test.txt , FileMode.Open, FileAccess.Re
用户8671053
2021/11/02
4390
从损坏的手机中获取数据
有时候,犯罪分子会故意损坏手机来破坏数据。比如粉碎、射击手机或是直接扔进水里,但取证专家仍然可以找到手机里的证据。
FB客服
2020/02/23
10.2K0
如何修复Windows 10中损坏的系统文件!
相信大家用电脑的都遇到过这样的情况:电脑在启动过程中感觉有问题或遇到问题,这时候则Windows系统文件可能已损坏,丢失,甚至已被某个软件安装更改。与之前的大多数Windows版本一样,Windows 10包含一个名为「SFC」的命令提示实用程序,它将扫描,验证和修复系统文件。
FreeRonin
2019/08/22
9.6K0
c# 读取 txt 文件中数据(int)
今天在学图的算法做测试是,需要读取文本文件中的点坐标,本来很简单的事情,折腾了半天,记录一下找到的一种简单粗暴的解决方法,以便以后查看。
用户2434869
2018/09/12
6.1K0

相似问题

NodeJS -读写文件导致损坏

261

读写时FatFS数据损坏

24

在C#中同时读写文件

45

c#中的文件读写

33

在C#中读写文本文件

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文