c# - 同一文件中的文本和二进制数据

标签 c# c++ mfc

CString strFile = "c:\\test.txt";

CStdioFile aFile;

UINT nOpenFlags = CFile::modeWrite | CFile::modeCreate | CFile::typeText;

CFileException anError;

if (!aFile.Open(strFile, nOpenFlags, &anError))
{
    return false
}

int nSize = 4*sizeof(double);
double* pData = new double[2];

CString strLine, str;

// Write begin of header
strLine = _T(">>> Begin of header <<<\n");
aFile.WriteString(strLine);

// Retrieve current position of file pointer
int lFilePos = (long) aFile.GetPosition();

// Close file
aFile.Close();

nOpenFlags = CFile::modeWrite | CFile::typeBinary;

if (!aFile.Open(strFile, nOpenFlags, &anError))
{
    return false;
}

for(int i = 0 ; i < 2 ; i++)
{
    pData[i] = i;     
}

// Set position of file pointer behind header
aFile.Seek(lFilePos, CFile::begin);

// Write complex vector
aFile.Write(pData, nSize);

// Write complex vector
aFile.Write(pData, nSize);

// Close file
aFile.Close();

意图创建一个包含文本数据和二进制数据的文件。此代码是用 MFC 编写的。我想在 C# 中类似地创建一个文件,其中包含文本数据和二进制数据。请让我知道使用哪个流类来创建这个

最佳答案

文本可以写成二进制数据=>只需对整个文件使用二进制模式即可。

文本模式唯一做的就是在写入时将“\n”转换为“\r\n”,在读取时返回。由于该文件部分是二进制文件,因此无论如何都无法在常规文本编辑器中进行编辑,因此您不需要进行该转换。如果该文件仅供您的应用程序使用,则您无所谓;如果它供其他应用程序使用,则只需手动使用它需要的任何换行符序列即可。

关于c# - 同一文件中的文本和二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6908451/

相关文章:

c# - 在不锁定资源的情况下使用 BitMap 对象

c++ - MFC中GDI修改字体

c++ - 如何在C++中指向全局函数中的成员函数?

c# - 如何检查 Win32 窗口指针是否是有效的 .Net 控件?

c# - 在 Windows 窗体应用程序中动态增加/减少视频的速度

c# - 如何访问用户控件 WinForm 中托管表单上的控件

c++ - 函数模板的部分排序 - 模棱两可的调用

c++ - Visual C++ IDE 如何创建(相对)小的 DLL

c++ - 使用 extern "C"在 C++ 程序中包含 header 时出错

c++ - 具有 char* 键和 int 值的容器