我試圖修改6 gig文本文件(SQL腳本)中的特定行。因此,我用IO.StreamReader.ReadLine
讀取它,並用IO.StreamWriter.WriteLine
寫入新文件。如果該行符合某個條件,我在寫入之前將其修改。複製文本文件一行一行vb.net一半大小?
的問題是,生成的文件正好是一半(1.999582 ...)的原始文件的大小...
我想,以確保編碼是一樣的使用:
sw = New IO.StreamWriter(NewFilepath, False, sr.CurrentEncoding)
不過,這並不有所作爲,新的文件是舊的一半大小...
嗯,我會嘗試尋找與一個十六進制查看器的每個文件的第一部分。第二次嘗試:爲讀寫定義另一種編碼。從ascii開始,或者因爲一半大小,請嘗試utf8,然後使用utf16。也許讀者會在注意到某些不同時改變編碼,但只是假設可能是錯誤的 – Amegon 2013-04-09 22:22:30
你可以發佈你的代碼嗎?你比較了這些文件嗎?通過前幾行的內容應該可以揭示出一些東西 - 在原始的十六進制編輯器中打開它們以查看改變了什麼。你是否缺少字符,字節或行等?如何測試較小的文件 - 調試簡短的東西? – 2013-04-10 00:47:02
這絕對是一種編碼的東西......當我運行SQL腳本時,我注意到一些字符無法正確呈現(例如o頂部的雙點呈現爲不同的字符)。我只想知道如何在這種情況下從源文件到目標文件保留編碼...... – John 2013-04-11 17:28:07