黑马程序员技术交流社区

标题: 怎样读取文件中的内容并显示出来 [打印本页]

作者: 我的专属    时间: 2014-3-16 19:20
标题: 怎样读取文件中的内容并显示出来
.把csv文件中的联系人姓名和电话显示出来。简单模拟csv文件,csv文件就是使用,分割数据的文本,输出: 姓名:张三  电话:15001111113
string[] lines = File.ReadAllLines(“1.csv”,Encoding.Default);//读取文件中的所有行,到数组中。

作者: mdb    时间: 2014-3-17 14:42
  1. string[] sn = new string[] { "张三,15001111113", "李四,15001111114", "王五,15001111115" };
  2.             foreach (string s in sn)
  3.             {
  4.                 Console.WriteLine("姓名:" + s.Split(',')[0] + "  电话:" + s.Split(',')[1]);
  5.             }
复制代码

作者: 贰的23次方    时间: 2014-3-17 22:15
我试着把它当成txt读取,失败了。百度了一下,貌似csv功能很强大……同样很好奇,期待着有大牛来解决。
作者: cancle    时间: 2014-3-17 23:11
额,可以用文件流来读取啊。
  1. string path = @"C:\Users\Administrator\Desktop\1.csv";
  2.             //使用文件流
  3.             using(FileStream fsRead=new FileStream(path,FileMode.Open,FileAccess.Read))
  4.             {
  5.                 byte[] buffer = new byte[1024 * 1024];//创建缓存区
  6.                 int r = fsRead.Read(buffer, 0, buffer.Length);//流中实际读出来的字节数
  7.                 string str = System.Text.Encoding.Default.GetString(buffer, 0, r);//把缓存区的实际字节转换为字符串
  8.                 Console.Write(str);
  9.             }
  10.             Console.ReadKey();
复制代码

作者: zhl406893081    时间: 2014-3-18 01:43
System.IO 命名空间是专门用来读写文件的.lz不会是不是应为没加命名空间.
作者: 贰的23次方    时间: 2014-3-18 10:47
为什么我这样读出来是乱码呢?
FileStream fs = new FileStream("../../1.csv", FileMode.Open);//创建文件读取流,第一个参数为文件路径,第二个为打开方式
            StreamReader myReader = new StreamReader(fs);//文件读取器
            myReader.BaseStream.Seek(0, SeekOrigin.Begin);//设置文件开始读取位置
            string sLine;

            while ((sLine = myReader.ReadLine()) != null)//每次读一行,直到文件结束
作者: threederek    时间: 2014-3-19 10:58
贰的23次方 发表于 2014-3-18 10:47
为什么我这样读出来是乱码呢?
FileStream fs = new FileStream("../../1.csv", FileMode.Open);//创建文 ...

第二行试试加上Encoding参数 StreamReader myReader = new StreamReader(fs,Encoding.UTF8);//文件读取器
作者: 贰的23次方    时间: 2014-3-19 11:25
我保存1.csv的时候是按ANSI编码,后来改成UTF8就成功了
string[] strArry = new string[3];
            while ((sLine = myReader.ReadLine()) != null)//每次读一行,直到文件结束
            {
                strArry = sLine.Split(',');
                Console.WriteLine(strArry[0]+","+strArry[1]);
               
            }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2