gpt4 book ai didi

c# - 文件流创建或追加问题

转载 作者:行者123 更新时间:2023-11-30 14:15:35 24 4
gpt4 key购买 nike

我在使用 FileStreams 时遇到问题。我正在为我正在处理的 FPGA 项目编写一个 C# 串行接口(interface),它接收一个数据包(包含 16 个字节)创建并将字节写入文件,然后附加到创建的文件。

程序没有抛出任何错误,但似乎没有通过创建文件,也没有向其中写入任何数据。

有什么想法吗?是否有更好的方法来打开或追加文件?

提前致谢,迈克尔

    private void SendReceivedDataToFile(int sendBytes)
{
if (saveFileCreated == false)
{
FileStream writeFileStream = new FileStream(tbSaveDirectory.Text, FileMode.Create);
writeFileStream.Write(oldData, 0, sendBytes);
writeFileStream.Flush();
writeFileStream.Close();
saveFileCreated = true;
readByteCount = readByteCount + sendBytes;
}
else
{
using (var writeFilestream2 = new FileStream(tbSaveDirectory.Text, FileMode.Append))
{
writeFilestream2.Write(oldData, 0, sendBytes);
writeFilestream2.Flush();
writeFilestream2.Close();
readByteCount = readByteCount + sendBytes;
}
}

if (readByteCount == readFileSize) // all data has been recieved so close file.
{
saveFileCreated = false;
}
}

最佳答案

FileMode.Append 已经表示“创建或追加”,所以实际上您只需要 ifelse {} 部分。您也不需要调用 Flush()Close() - 处理流将为您完成。不确定是否不写入数据...您是否尝试跟踪您的代码?

所以首先我会减少你的代码

private void SendReceivedDataToFile(int sendBytes)
{
using (var fs = new FileStream(tbSaveDirectory.Text, FileMode.Append))
fs.Write(oldData, 0, sendBytes);
readByteCount += sendBytes;
}

然后尝试找出 oldData 中的内容。

关于c# - 文件流创建或追加问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9751340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com