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/