1.首先来理解几个概念:文件,二进制文件,文本文件,二进制方式,文本方式
文件:是存储在内存中的数据(二进制)在外部存储介质上的一种存放形式, 当然数据在文件中也一定是以二进制形式存放的,不是二机制还会是什么形式。
二进制文件:如可执行程序,图片,声音等。
文本文件:文本文件。
其实,我认为二进制文件和文本文件没有什么区别,其它存放的都是二进制的字节流而已。
文本方式:是一种操作文件的方式,当向文件中写入数据时,如果以字节为单位写入,那么当遇到值10时,即换行符时,会自动将10转化为13和10,当以字节为单位读取数据时,当遇到连续两个字节13和10时会自动将其转化为一个字节10。以这种方式对文件操作可能会造成数据的丢失。
二进制方式:也是一种操作文件的方式,这种方式不会做任何转化,即在内存中是什么样在文件中就是什么样。
所以,我们对文件操作是应该保持一致,如果采用文本方式写入,也应该采用文本方式读出,如果采用二进制写入在读取的时候也应该采用二进制方式。
无论是什么文件,如果我们统一采用二进制方式进行写入和读取,则永远不会出错。
注意:在C语言中,默认的文件操作方式是文本方式,如果我们要采用二进制方式要显示指出。
2.C++中的文件操作:如下例:
bool fWriteFile(const char *pchBuffer)
{
ofstream ofs("2.txt");
int iLen = strlen(pchBuffer);
ofs.write(pchBuffer, iLen);
ofs.close();
return true;
}
bool fReadFile()
{
char pchBuffer[100];
ifstream ifs("2.txt");
int iLen = 0;
memset(pchBuffer, 0, 100);
ifs.read(pchBuffer, 100);
ifs.close();
cout<<pchBuffer<<endl;
return true;
}
int main(int argc, char* argv[])
{
char *pchBuffer = "http://news.sina.com.cn";
if (!fWriteFile(pchBuffer))
{
return 1;
}
if (!fReadFile())
{
return 1;
}
return 0;
}
文件:是存储在内存中的数据(二进制)在外部存储介质上的一种存放形式, 当然数据在文件中也一定是以二进制形式存放的,不是二机制还会是什么形式。
二进制文件:如可执行程序,图片,声音等。
文本文件:文本文件。
其实,我认为二进制文件和文本文件没有什么区别,其它存放的都是二进制的字节流而已。
文本方式:是一种操作文件的方式,当向文件中写入数据时,如果以字节为单位写入,那么当遇到值10时,即换行符时,会自动将10转化为13和10,当以字节为单位读取数据时,当遇到连续两个字节13和10时会自动将其转化为一个字节10。以这种方式对文件操作可能会造成数据的丢失。
二进制方式:也是一种操作文件的方式,这种方式不会做任何转化,即在内存中是什么样在文件中就是什么样。
所以,我们对文件操作是应该保持一致,如果采用文本方式写入,也应该采用文本方式读出,如果采用二进制写入在读取的时候也应该采用二进制方式。
无论是什么文件,如果我们统一采用二进制方式进行写入和读取,则永远不会出错。
注意:在C语言中,默认的文件操作方式是文本方式,如果我们要采用二进制方式要显示指出。
2.C++中的文件操作:如下例:
bool fWriteFile(const char *pchBuffer)
{
ofstream ofs("2.txt");
int iLen = strlen(pchBuffer);
ofs.write(pchBuffer, iLen);
ofs.close();
return true;
}
bool fReadFile()
{
char pchBuffer[100];
ifstream ifs("2.txt");
int iLen = 0;
memset(pchBuffer, 0, 100);
ifs.read(pchBuffer, 100);
ifs.close();
cout<<pchBuffer<<endl;
return true;
}
int main(int argc, char* argv[])
{
char *pchBuffer = "http://news.sina.com.cn";
if (!fWriteFile(pchBuffer))
{
return 1;
}
if (!fReadFile())
{
return 1;
}
return 0;
}