iam为嵌入式windows的掌上电脑6.5创建了一个应用程序,iam不得不读取文本文件的内容并加载到字符串中。该文件是tab格式的,有3列(条形码、desc、价格(。代码将在表单加载时执行,我在windows6经典模拟器上发布的vb2005上使用c#编写了以下内容,但streamreader始终为空。我已经写下了以下内容,请有任何建议,我感谢您的帮助!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
private void Form1_Load(object sender, EventArgs e)
{
string fileloc = "fileexample.txt";
StreamReader sr = new StreamReader(fileloc);
string s = sr.ReadToEnd();
}
确定:
ReadAllText不可用时,如何读取所有文本?
compact framework版本没有实现它。.net版本,然而,它只是这样实现的:
public static class File { public static String ReadAllText(String path) { using (var sr = new StreamReader(path, Encoding.UTF8)) { return sr.ReadToEnd(); } } }
注意StreamReader的第二个参数:Encoding.UTF8。
另请参阅:
Compact Framework:读取文件时出现问题
Windows CE没有";当前目录";。操作系统尝试在传递"时打开\list.txt;list.txt";。你总是要指定文件的完整路径。。。
在我使用的完整框架中:
string dir = Path.GetDirectory(Assembly.GetExecutingAssembly().Location); string filename = Path.Combine(dir, "list.txt"); StreamReader str = new StreamReader(filename);
强烈建议:
- 指定编码(例如UTF8(
- 在这个方法中设置一个断点,并在代码中单步执行
尝试使用
File.ReadAllText("Full File Path");
并使用完整文件路径,如C:\fileexample.txt
string FilePath = "/"; //Root
string FileName = "MyFile.txt";
string MyString = "";
StreamReader sr = new StreamReader(File.OpenRead(FilePath + FileName), Encoding.Default, true);
while (!sr.EndOfStream)
{
MyString += sr.ReadLine();
}
sr.Dispose();
sr.Close();
经过长时间的搜索,我找到了我要找的东西。我想分享,这样其他人就不会像我一样受苦:
private void Form1_Load(object sender, EventArgs e)
{
string dir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
string filename = Path.Combine(dir, "alisyd.txt");
StreamReader sr = new StreamReader(filename);
string s = sr.ReadToEnd();
}