Tôi đang thử nghiệm cách các lớp FileStream và StreamReader làm việc với máy tính. Thông qua ứng dụng Console. Tôi đang cố gắng để đi vào một tập tin và đọc các dòng và in chúng trên bàn điều khiển.Sự cố FileStream StreamReader trong C#
Tôi đã có thể làm điều đó với một vòng lặp while, nhưng tôi muốn thử nó với vòng lặp foreach.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace testing
{
public class Program
{
public static void Main(string[] args)
{
string file = @"C:\Temp\New Folder\New Text Document.txt";
using(FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read))
{
using(StreamReader sr = new StreamReader(fs))
{
foreach(string line in file)
{
Console.WriteLine(line);
}
}
}
}
}
}
Các lỗi tôi tiếp tục nhận được cho việc này là: Không thể chuyển đổi loại 'char' thành 'chuỗi'
Vòng lặp while, mà không làm việc, trông như thế này:
while((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
tôi có lẽ nhìn thấy một cái gì đó thực sự cơ bản, nhưng tôi không thể nhìn thấy nó.
Về đối tượng của foreach (trực tiếp liên quan đến nhận xét của bạn về "năng suất"), tôi khuyên bạn nên chương miễn phí 6 của C# in x - ở đây: http://www.manning.com/skeet/ –
Vấn đề của bạn là mã của bạn đang lặp (foreach) thông qua từng phần tử trong "tệp" (là một chuỗi). Do đó mỗi phần tử là một "char". Do đó thông báo lỗi trình biên dịch mà bạn đang cố gắng chuyển đổi thành loại chuỗi. Bạn nên lặp lại (foreach) thông qua dữ liệu từ luồng. – RichS