【问题标题】:What is the best way to check a .TXT extension file for CSV format data?检查 .TXT 扩展文件以获取 CSV 格式数据的最佳方法是什么?
【发布时间】:2013-12-02 07:54:57
【问题描述】:

我需要导出和导入包含 CSV 格式数据的 TXT 文件。我需要在 MVC4 中完成。最好的方法是什么?

txt文件可以包含大量的CSV格式数据,

【问题讨论】:

    标签: c# asp.net-mvc-4 csv bulkinsert bulk-load


    【解决方案1】:

    只需通过 CSV 解析器运行它(我过去使用过 this one - 工作正常)并检查它是否具有语义意义,并​​且每行具有相同数量的列。如果不是 CSV 数据,那将不太可能。注意:列 != 逗号 - 您需要注意引用数据 "like, this" 和换行符 - 解析器将帮助您处理这两者。您不能只通过Split ',' 或使用行尾来检测行 - CSV 比这更复杂。

    【讨论】:

    • 很好的反应和触摸!
    • @Marc Gravell:感谢您的快速回复。我只是通过你的 CSV 解析器。 new StreamReader("data.csv")。是专门找csv扩展文件吗?
    • @ShubhajyotiGhosh 是 Andrei 提到了 CSV Parser 和 StreamReader - 但是:它不在乎扩展名是什么;你只是说“打开这个文件”
    【解决方案2】:

    如果您只想检查文件扩展名,那么使用lastIndexOfSplit 将非常适合您。

    使用endsWith

    String myFile = "some.file.txt";
            System.out.println(myFile.endsWith(".txt"));
    

    使用split

    String myFile = "some.file.txt";
    String[] myFileArray = myFile.split("\\.(?=[^\\.]+$)");
    if (myFileArray[myFileArray.length - 1].equalsIgnoreCase("txt")) {
        System.out.println("Ends with .txt");
    }
    

    【讨论】:

    • 有标准的框架方法可以做到这一点——主要是Path.GetExtension
    • @MarcGravell,通常你是对的!不认识他们,只是用定制的。但使用框架总是更好。 (顺便说一句,马克评论了我;))
    猜你喜欢
    • 1970-01-01
    • 2010-09-24
    • 2014-01-16
    • 1970-01-01
    • 2012-10-05
    • 2017-04-15
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    相关资源
    最近更新 更多