日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java实现fread_fread函数读取到的数据和实际数据不一样

發布時間:2023/11/27 生活经验 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现fread_fread函数读取到的数据和实际数据不一样 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

最近項目中弄個接口,涉及到二進制文件處理,剛開始對讀寫文件夾這塊沒有太注意,結果最后浪費了一些時間。

文件大小600+k(不到一兆),二進制存儲,總長度638208個字節,如下:

正文

最初,通過fopen打開文件,如下:

/* 打開文件*/

if((fp_input = fopen(strFilePath.GetBuffer(), "r")) == NULL)

{

MessageBox("Can't open intput file!");

}

然后獲取文件的總長度,如下:

/* 獲取文件總長度(總字節數) */

long filesize(FILE *stream)

{

long curpos, length;

curpos = ftell(stream);

fseek(stream, 0L, SEEK_END);

length = ftell(stream);

fseek(stream, curpos, SEEK_SET);

return length;

}

一切看似都很正常,文件能打開,總長度獲取也沒問題,然后就是通過fread讀取文件內容了,如下:

/* 讀取文件內容 */

if(fread(str_file, 1, flength, fp_input) == 0)

{

MessageBox("Can't read file!");

return;

}

OK,下面就開始根據接口格式解析文件內容了。

問題也就出來了,明明文件總長度為638208個字節,但每次處理到629000+個字節后程序就崩掉了。開始我以為是我解析代碼里面內存沒處理好造成內存溢出了,然后我就把所有分配內存的地方注釋掉,發現還有問題。調了一段時間后,我就在函數入口的地方直接偏到629000+的位置看了內存里面的內容,發現竟然為空。現在就定位了問題出在前面的讀文件,往前看代碼,發現fopen的時候用的“r”,改成“rb”,重新跑了下程序。OK了,OK了,OK了,為什么?

為什么用“r”和“rb”都能讀取文件內容,但讀出來的東西卻不一樣了?

帶著疑問,在網上搜了一把(之前確實沒注意過這個問題,也沒遇到過),發現真有這樣的問題,原因如下:

先看一段MSDN:

If the given stream is opened in text mode, carriage return–linefeed pairs are replaced with single linefeed characters. The replacement has no effect on the file pointer or the return value.

就是說如果按“文本模式”打開一個文件,那么在讀入的時候,Windows默認的換行符CR+LF就會轉換成一個單個的LF。

引自:https://blog.csdn.net/tgdzsjh/article/details/32702073

r遇到0x0d后面沒有0x0a會自動加一個,遇到0x1a會忽略后面的內容

rb不會

r 讀到\r\n會改為\n,讀到\x1a會返回EOF

rb 讀到什么返回什么,讀到文件末尾才會返回EOF

引自:https://blog.csdn.net/cattylll/article/details/7107089

總結

以上是生活随笔為你收集整理的java实现fread_fread函数读取到的数据和实际数据不一样的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 97操| 91av福利视频 | 少妇高清精品毛片在线视频 | 国内免费av | 性高潮视频在线观看 | 特黄aaaaaa私密按摩 | 色久综合网 | 国产高清视频一区二区 | 中日韩精品视频在线观看 | 无码人妻丰满熟妇区毛片18 | 丰满的人妻hd高清日本 | 俄罗斯嫩小性bbwbbw | 黄色资源在线 | 天天操天天干天天操 | 伊人av在线播放 | 欧美亚洲国产一区二区三区 | 久久精品免费一区二区 | 日韩城人免费 | 67194午夜| 国产精品一区二区三区四区视频 | 影音先锋 日韩 | 欧美日韩国产中文 | 狠狠爱天天干 | 六月色婷 | www.av日韩| 97视频一区二区 | 国产网站在线免费观看 | 欧美 中文字幕 | 亚洲精品2 | 亚洲论理| 亚洲国产精品久久人人爱 | 黄色网址在线免费 | 伊人222成人综合网 亚洲日本中文 | 国产精品一区av | 中日精品一色哟哟 | 国产一区在线看 | 99热最新 | 91久久国产综合久久91精品网站 | 黄色成人在线观看 | 一区二区网 | 激情毛片视频 | 欧美毛片视频 | 夜夜爽妓女8888视频免费观看 | 姐姐你真棒插曲快来救救我电影 | 亚洲欧美精选 | 国产精品野外户外 | 国产精品视频a | 亚洲影视在线 | 在线观看黄色国产 | 已满18岁免费观看电视连续剧 | 国产v亚洲v天堂无码久久久 | 丁香激情五月少妇 | 欧美九九九| 日韩精品无码一本二本三本色 | 欧美色v| 绯色av一区二区三区高清 | 日本xxxxwwwww | heyzo北岛玲在线播放 | 国产精品普通话 | 97久久免费视频 | 欧美亚韩一区二区三区 | 国产1区2区在线观看 | 亚洲爱爱爱| 欧美女优一区 | 熟妇高潮一区二区三区 | 亚洲另类自拍 | 91视频地址 | 久久精品免费 | 欧美大片免费观看 | 国产a级淫片 | 日韩国产毛片 | 天天天天 | 四虎影视在线 | 国产精品无码久久av | 狠狠综合久久av一区二区 | 久久久久免费精品视频 | 精品一区免费观看 | 久久久久久99精品久久久 | 亚洲麻豆一区 | av网址观看 | 国产亚洲精品久久久久久打不开 | 97视频免费在线 | 最新av网站在线观看 | 老司机福利院 | 91视频免费观看网站 | 日韩视频免费 | 黄色小说在线免费观看 | 久久av中文字幕 | 成人精品三级av在线看 | www.爱爱| 在线观看国产一区二区三区 | 一区二区三区福利 | 香蕉黄视频 | 国产成人精品亚洲男人的天堂 | 黄色网址在线免费观看 | 久久三区 | 一区二区日本视频 | 欧美性生活精品 | 国产精品区二区三区日本 |