Trong bài này, chúng ta sẽ thực hiện vài ví dụ cơ bản về nhập xuất file (I/O):

BinaryReader: Đọc kiểu dữ liệu nguyên thủy từ một dòng nhị phân mã hóa xác định
BinaryWriter: Ghi dữ liệu nguyên thủy trong định dạng nhị phân mã hóa xác định
BufferedStream: Lưu trữ tạm thời cho các Stream của bytes.
Directory: Giúp thao tác trên cấu trúc thư mục
DirectoryInfo:Sử dụng để thực hiện cá hoạt động trên thư mục
DriveInfo:Thông tin ổ đĩa
File: Thao tác file
FileInfo:Sử dụng để thực hiện các hoạt động trên file
FileStream: Đọc và ghi bất kỳ vị trí nào trong file
MemoryStream: Dùng để truy cập ngẫu nhiên và xem trực tiếp dữ liệu được lưu trữ trong bộ nhớ.
Path: Thực hiện các hoạt động trên đường dẫn
StreamReader:Dùng để đọc các ký từ một dòng
StreamWriter: Được sử dụng để viết các ký tự cho một dòng
StringReader: Được sử dụng để đọc một chuỗi string từ bộ nhớ đệm
StringWriter: Được sử dụng để viết vào bộ nhớ đệm
Và một vài phương thức khác ............
Primitive Data
Được gọi là kiểu dữ liệu nguyên thủy bao gồm như: byte, short, int, long, float, double, char, bolean, object, string...

Các class này nằm trong namespace:  System.IO. Mỗi class có rất nhiều phương thức nhưng chúng ta chỉ tìm hiểu sơ qua một vài ví dụ cơ bản trong hôm nay.


1. StreamReader - StreamWriter - Đọc/Ghi File Text Cơ Bản

Ví dụ : RichTextBox 

a) Nhập một file txt từ máy của bạn với Browser chọn file.


var dialog = new OpenFileDialog
{
Filter = @"Tập tin (.txt)|*.txt",
Multiselect = false,
Title = @"Chọn tập tin"
};

var dlr = dialog.ShowDialog();
if (dlr != DialogResult.OK) return;
using (var sr = new StreamReader(dialog.FileName))
{
richtxtcontent.Clear();
richtxtcontent.Text = sr.ReadToEnd(); //Đọc toàn bộ nội dung của file
sr.Close();
}

richtxtcontent: là tên thuộc tính của RichTextBox 
Bạn nên tạo một biến String toàn cục lưu giữ giá trị đường dẫn vừa mới chọn bên trên bằng cách get path như sau:
string fn = dialog.FileName

b) Nhập file txt từ đường dẫn được quy định sẵn:

using (var sr = new StreamReader(@"E:\DemoText.txt"))
{
richtxtcontent.Clear();
richtxtcontent.Text = sr.ReadToEnd(); //Đọc toàn bộ nội dung của file
sr.Close();
}

 Nếu viết:
var sr = new StreamReader("DemoText.txt")
Thì file đó sẽ được xác định trong thư mục debug của project

Chú ý: Tên Đường Dẫn
Nếu không dùng sử dụng cú pháp @"E:\DemoText.txt" bắt buộc phải viết lại như sau "E:\\DemoText.txt". Điều đó có nghĩa
Nếu viết '\' mà không dùng @ sẽ gây ra một lỗi, phải '\\' mới hợp lệ

c) Để lưu file vừa mới mở sau ghi chỉnh sửa ta viết như sau:
var sw = new StreamWriter(@"E:\DemoText.txt");
sw.WriteLine(richtxtcontent.Text);
sw.Flush();
sw.Close();

Bạn nên tạo một biến String toàn cục lưu giữ giá trị đường dẫn này. Ở ví dụ trên, chúng ta đã nhập thẳng đường dẫn cố định 
@"E:\DemoText.txt" 

 d) Để lưu file mới 
- Hãy gõ vài dòng vào RichTextBox của bạn và nhấn Button Lưu có mã lệnh như sau:
"Hãy chạy thử đoạn code bên dưới"
FileDialog sfd= new SaveFileDialog();
string fname = null;
sfd.Filter = "Text Files|*.txt";
var res = sfd.ShowDialog();
if (res == DialogResult.Cancel)
{
return;
}
fname = sfd.FileName;
MessageBox.Show(fname);

var sw = new StreamWriter(fname);
sw.WriteLine(richtxtcontent.Text);
sw.Flush();
sw.Close();

Điều đó sẽ lưu mới một file txt cho bạn

Ví dụ: ListView
Đối với list view chỉ khác một chút là dữ liệu nhập vào theo từng dòng. Nên lúc đọc file text bạn sẽ đọc từng dòng và add vào ListView cứ vòng lặp như vậy cho đến cuối file text.
"Hãy chạy thử đoạn code bên dưới" 

var dialog = new OpenFileDialog();
dialog .Filter = @"Danh Sách URL (.txt)|*.txt";
dialog .Multiselect = false;
dialog .Title = @"Chọn file Danh Sách URL";
DialogResult dlr = dialog .ShowDialog();
if (dlr == DialogResult.OK)
{
using (var sr = new StreamReader(dialog.FileName))
{
listView1.Items.Clear();
string line;
while ((line = sr.ReadLine()) != null)
{
listVie1.Items.Add(new ListViewItem(line));
}
sr.Close();
}
}


2. BinaryReader - BinaryWriter - Đọc/Ghi File Với Phần Mở Rộng Bất Kỳ
Trong ví dụ này, ta sẽ tạo một tập tin và đọc tập tin này sau đó xuất dữ liệu ra màn hình Console.
"Hãy chạy thử đoạn code bên dưới"

using System;
using System.IO;

namespace ConsoleApplication1
{
internal class Program
{
static void Main(string[] args)
{
BinaryWriter bw;
BinaryReader br;

// Dữ liệu khai báo sẵn
int i = 2013;
int j = 2014;
double d = 3.4567;
bool b = true;
string s = "I am coder !";

//Tạo mới một file
//Phân mở rộng *.br bạn có thể đặt gì bạn thích hoặc không.
// Không quan trọng vì thực chất đó là một tệp nhị phân mã hóa
try
{
bw = new BinaryWriter(new FileStream("mytest.br",
FileMode.Create));
}
catch (IOException e)
{
Console.WriteLine(e.Message );
return;
}
//Ghi giá trị vào file đã tạo
try
{
bw.Write(i); //Ghi giá trị thứ tự: 1
bw.Write(d); //Ghi giá trị thứ tự: 2
bw.Write(b); //Ghi giá trị thứ tự: 3
bw.Write(s); //Ghi giá trị thứ tự: 4
bw.Write(j); //Ghi giá trị thứ tự: 5
}
catch (IOException e)
{
Console.WriteLine(e.Message );
return;
}

bw.Close();

//Đọc giá trị từ file
try
{
br = new BinaryReader(new FileStream("mytest.br", FileMode.Open));
}
catch (IOException e)
{
Console.WriteLine(e.Message);
return;
}
try
{
var vt1 = br.ReadInt32();
Console.WriteLine(" Kiểu Integer vị trí 1: {0}", vt1);

var vt2 = br.ReadDouble();
Console.WriteLine("Kiểu Double vị trí 2: {0}", vt2);
var vt3 = br.ReadBoolean();
Console.WriteLine("Kiểu Boolean vị trí 3: {0}", vt3);
var vt4 = br.ReadString();
Console.WriteLine("Kiểu String vị trí 4: {0}", vt4);
var vt5 = br.ReadInt32();
Console.WriteLine("Kiểu Integer vị trí 5: {0}", vt5);

}
catch (IOException e)
{
Console.WriteLine(e.Message );
return;
}
br.Close();
Console.ReadLine();
}
}
}

- Bạn có thể thấy ví dụ trên sau khi ghi từng giá trị vào file, để đọc bạn cần liệt kê chính xác vị trí giá trị và kiểu của dữ liệu đã ghi trước đó
(Còn tiếp....)
Tải về mã ví dụ bên dưới.
 

Update:30/12/2013

thumbnail Xử Lý Cơ Bản Nhập Xuất File I/O Với C# - Phần I

data:label.name author

premiumpng.com

Design Publisher

Download 0
No comments
Template in .PSD format

MR Laboratory License

Free for personal purpose use . More info


Buy Now This Template

No comments:

Post a Comment

Commets Download Photoshop Actions, Lightroom Presets, PSD Template, Mockups, Stocks, Vectors, Fonts. Download free

Newer Post Older Post Home

Copyright © 2021 MR Laboratory All rights reserved.

Setting