Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Một vài vấn đề liên quan đến đọc - ghi file

  1. #1
    Ngày gia nhập
    06 2007
    Bài viết
    3

    Mặc định Một vài vấn đề liên quan đến đọc - ghi file

    Tớ có 1 vài thắc mắc về vấn đề này, mong mọi người giải đáp:

    1.
    using System;
    using System.IO;

    namespace file
    {
    class Program
    {
    static void Main(string[] args)
    {
    TextWriter tw = new StreamWriter("C:/test.txt");

    // write a line of text to the file
    tw.WriteLine("Tell me what's forever for");
    tw.WriteLine("abc123");
    tw.WriteLine("123456");

    // close the stream
    tw.Close();
    Console.ReadLine();
    }
    }
    }
    Trong đoạn code trên nếu thay TextReader ( in đậm) bằng StreamReader thì vẫn được. Vậy sự khác nhau của 2 lớp này là gì? Dùng cái nào thì tối ưu hơn?

    2.
    Để tạo 1 file mới, có thể làm tt cách trên hoặc 1 cách nữa là:

    using System;
    using System.IO;


    namespace file2
    {
    class Program
    {
    static void Main(string[] args)
    {
    FileStream fout;

    // open output file
    try
    {
    fout = new FileStream("test.txt", FileMode.Create);
    }
    catch(IOException exc)
    {
    Console.WriteLine(exc.Message);
    return;
    }

    //Write alphabet to file
    try
    {
    for (char c = 'A'; c <= 'Z'; c++)
    fout.WriteByte((byte)c);
    }
    catch (IOException exc)
    {
    Console.WriteLine(exc.Message);
    }
    fout.Close();
    Console.ReadLine();
    }
    }
    }
    Có phải lớp StreamReader/StreamWriter là lớp con của FileStream không nhỉ?
    3.
    Nếu thay phương thức WriteByte ( in đậm ) bằng phương thức Write thì pt này cần có 3 tham số. Nhưng tớ không hiểu 3 tham số này là những gì? .
    Pt Write khác gì so với WriteByte?

    4. Nếu bỏ câu lệnh return; ( in đậm nghiêng ) ở trên thì trình biên dịch sẽ báo lỗi chưa khởi tạo biến fout. Tớ không hiểu tại sao lại thế?

    Mong các cậu giúp đỡ.
    Cảm ơn nhiều.
    jerry,

  2. #2
    Ngày gia nhập
    09 2006
    Bài viết
    711

    1. TextWriter là abstract base class của StreamWriter nên dĩ nhiên đoạn code trên của cậu không sao, compiler không báo lỗi. New con gán vào cha thì được, vì 100% của cha sẽ tồn tại trong con (con chính hãng nha, không phải con hàng xóm), chứ new cha mà gán vào con thì báo lỗi đó, vì con sẽ có thêm nhiều cái khác cha (do mẹ nó dạy, thêm vào, rồi overload, overwrite cái tính xấu mà mẹ nó không ưa từ thằng cha nó.)
    2. Nên đọc thật kỹ MSDN về các thắc mắc của mình, MSDN nói rõ ra rồi, đừng lười quá vậy: StreamWriter kế thừa từ abstract class TextWriter, StreamReader kế thừa từ abstract class TextReader.
    MSDN:
    public ref class TextReader abstract : public MarshalByRefObject, IDisposable
    public class StreamReader : TextReader

    public abstract class TextWriter : MarshalByRefObject, IDisposable
    public class StreamWriter : TextWriter
    3. Write cần 3 thông số:
    Writes a block of bytes to this stream using data from a buffer
    public override void Write (
    byte[] array,
    int offset,
    int count
    )
    Còn WriteByte thì chỉ write 1 byte, thằng trên thì write 1 đống luôn, hiểu chưa vậy ???
    4. Chắc chắc vậy, tui hỏi cậu, khi khai báo fout như vậy, thì fout có giá trị gì, và nếu exception throw trong câu lệnh new FileStream(xxx gì đó) thì fout có được khởi gán giá trị không.
    Tự nhiên thấy bực mình, cậu này chỉ biết cắm đầu code mà không biết tự tìm hiểu, tự search.
    Tui là chúa ghét C#, không biết nó 1 chữ, vậy mà chỉ cần tra MSDN là ra. ????

Các đề tài tương tự

  1. Bài tập C++ [C++]Bài tập hướng đối tượng liên quan lớp trừu tường.
    Gửi bởi huynhluan300 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 07-12-2013, 08:16 PM
  2. Hướng dẫn lấy địa chỉ IP và các thông tin liên quan
    Gửi bởi tinhthanhiepsi9x trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 27-11-2012, 09:00 PM
  3. Các hàm API liên quan đến thư mục ổ đĩa
    Gửi bởi foreverlove trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 01-04-2010, 04:12 AM
  4. Những thông tin liên quan đến HDH
    Gửi bởi lucky_little trong diễn đàn Thắc mắc chung
    Trả lời: 2
    Bài viết cuối: 05-09-2009, 09:40 AM
  5. cho hỏi về một số hàm liên quan đến file
    Gửi bởi boyhello456 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 16-12-2008, 06:00 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn