【发布时间】:2016-09-16 19:15:29
【问题描述】:
我只是在练习 C#。我主要习惯于 Java,但我一直无法弄清楚如何读取 .CSV 文件、存储它并将其内容打印到控制台中。这就是我到目前为止所拥有的。我做错了什么?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using Microsoft.VisualBasic.FileIO;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
String path = "C:\\Desktop\\csvTestFilePractice\\";
String file1 = "testFile1.csv";
ArrayList arryList1 = new ArrayList();
String[] dataArray1;
TextFieldParser CSVFile1 = new TextFieldParser(path + file1);
CSVFile1.SetDelimiters(",");
dataArray1 = CSVFile1.ReadFields();
int count = 0;
while (!CSVFile1.EndOfData)
{
dataArray1 = CSVFile1.ReadFields();
Console.WriteLine(dataArray1);
}
Console.Read();
}
}
}
这也是我正在测试的文件。
______Excel 视图
ID Name Phone State
1 Colt 864-367-8399 SC
2 Terry 864-367-8400 GA
3 Joe 864-367-8401 FL
4 Mark 864-367-8402 NC
5 Ashley 864-367-8403 CO
____记事本视图
ID,Name,Phone,State
1,Colt,864-367-8399,SC
2,Terry,864-367-8400,GA
3,Joe,864-367-8401,FL
4,Mark,864-367-8402,NC
5,Ashley,864-367-8403,CO
感谢您的建议
【问题讨论】:
-
您有这一行:
CSVFile1.SetDelimiters(","),但您的文件似乎没有用逗号分隔。 -
@ChrisDunaway 我很抱歉这是一个 CSV 文件,但我使用 excel 来提取数据。我将改为发布记事本数据
-
你想怎么打印?除了
WriteLine语句之外,您发布的代码似乎还可以。您可以尝试Console.WriteLine(string.Join(",", dataArray1));,或者如果您需要以柱状格式打印,请尝试Console.WriteLine("{0,2} {1,-10} {2,-14} {3, -5}", dataArray1[0], dataArray1[1], dataArray1[2], dataArray1[3]); -
@Andersnk 那篇文章没有回答我的具体问题。我有一个特定于我发布的代码的问题。