C#的二進位制檔案操作
轉自:http://www.blogjava.net/blogpig/archive/2006/10/24/76910.html
1 .數值應儲存在二進位制檔案
首先列舉文字、二進位制檔案的操作(讀寫)方法:
方式 1 :
// 文字檔案操作:建立 / 讀取 / 拷貝 / 刪除
using System;
using System.IO;
class Test
{
string path = @"f:\t.txt";
publicstaticvoid Main()
{
// 建立並寫入 ( 將覆蓋已有檔案 )
if (!File.Exists(path))
{
//StreamWriter m=new
//StreamWriter(path,true,Encoding.Default,1);//ASCII,1 Encoding.Default :即//UTF-8編碼 這樣就可以指定編碼方式
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Hello");
}
}
// 讀取檔案
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
// 刪除 / 拷貝
try
{
File.Delete(path);
File.Copy(path, @"f:\tt.txt");
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
方式 2 :
// 流檔案(二進位制)操作
private const string name = "Test.data";
public static void Main(String[] args)
{
// 開啟檔案 () , 或通過 File 建立立如: fs
= File.Create(path, 1024)
FileStream fs = new FileStream(name, FileMode.CreateNew);
// 轉換為位元組 寫入資料 ( 可寫入中文 )
Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
// 位元組陣列 , 位元組偏移量 , 最多寫入的位元組數
BinaryWriter w = new BinaryWriter(fs);
// 設定要寫入的偏移量
fs.Position=fs.Length;
// fs.Write(info, 0, info.Length); 這個也可以
w.Close();
fs.Close();
// 開啟檔案
fs = new FileStream(name, FileMode.Open, FileAccess.Read);
// 讀取
BinaryReader r = new BinaryReader(fs);
for (int i = 0; i < 11; i++)
{
Console.WriteLine(r.ReadInt32());
}
w.Close();
fs.Close();
在將一系列二進位制數如方式 1 寫入到 file.txt( 二進位制 ) 檔案後,開啟 file.txt 後顯示的資料二進位制數有些錯誤,有些正確。(與存入的不一樣) 向檔案中寫入的 預設(也可以設定) 都是使用 UTF-8 編碼 。開啟 file.txt 是也是預設 UTF-8 編碼。
若將其如方式 2 存入 二進位制檔案,則顯示的資料一致。若將二進位制數(整數)儲存為文字檔案出錯。二進位制檔案是直接寫入檔案的(磁碟)沒有經過編碼和讀取時的解碼。
相關文章
- 檔案操作(二進位制拷貝)
- 二進位制檔案複製
- php寫二進位制檔案PHP
- 二進位制檔案拷貝
- JS的二進位制操作JS
- 二進位制檔案視覺化(二)視覺化
- 文字檔案與二進位制檔案的區別
- Git處理二進位制檔案Git
- MySQL二進位制檔案(binlog)MySql
- 介面返回二進位制檔案的下載。
- Java二進位制操作指南Java
- Python讀寫二進位制檔案Python
- Java二進位制Class檔案格式解析Java
- c++ 二進位制儲存檔案C++
- 使用UltraEdit 拷貝二進位制檔案
- js對檔案和二進位制操作的一些方法彙總JS
- 用C#實現二進位制的減法(包括二進位制小數)C#
- 6.3建立自己執行的二進位制檔案
- Oracle建立二進位制檔案索引的方法(轉)Oracle索引
- JS操作二進位制方法 - blobJS
- MySQL 匯出匯入二進位制檔案MySql
- UltraEdit--二進位制檔案編輯功能
- 用shell處理二進位制檔案(轉)
- UE複製貼上二進位制檔案
- 二進位制檔案記憶體對映記憶體
- Effective C# :建立二進位制元件C#元件
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- Java基礎系列-二進位制操作Java
- 二進位制與二進位制運算
- 二進位制檔案安裝安裝etcd
- C++ 讀取二進位制檔案到char*C++
- C/C++ 二進位制讀寫 png 檔案C++
- 將音訊檔案轉二進位制分包儲存到Redis(奇淫技巧操作)音訊Redis
- 進位制詳解:二進位制、八進位制和十六進位制
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- JS下載後臺介面返回的二進位制檔案JS
- mysqlbinlog 處理二進位制日誌檔案的工具MySql