标签: opencsv

使用utf-8的opencsv CSVWriter似乎不适用于多种语言

我使用opencsv有一个非常烦人的编码问题.当我导出csv文件时,我将字符类型设置为'UTF-8'.

CSVWriter writer = new CSVWriter(new OutputStreamWriter("D:/test.csv", "UTF-8"));
Run Code Online (Sandbox Code Playgroud)

但是当我用Microsoft Office Excel 2007打开csv文件时,它发现它有'UTF-8 BOM'编码?

一旦我将文件保存在记事本中并重新打开,文件将返回UTF-8并且其中的所有字母都显示正常.我想我已经搜索得足够多了,但我没有找到任何解决方案来防止我的文件变成'UTF-8 BOM'.有什么想法吗?

java unicode utf-8 opencsv

11
推荐指数
1
解决办法
2万
查看次数

如何将数据导出到Android中的csv文件?

我用以下格式创建了一个csv文件,我的目标是输出到设备的SD卡:

Ship Name,Scientist Name,Scientist Email,Sample Volume,Sample Colour,Longitude,Latitude,Material,Date
Run Code Online (Sandbox Code Playgroud)

除了date的最后一个值之外,csv中的每个vales都是string类型.csv文件的名称是AnalysisData.csv

我看过Stackoverflow上的例子,例如,从app android导出我的CSV文件数据,但这会创建一个我不想要的新文件.

我已经将opencsv jar添加到我的项目中,所以只需要一个相关的例子.

有没有人对在Android中实现这一点有任何建议?

csv android sd-card opencsv

11
推荐指数
1
解决办法
4万
查看次数

Java CSVReader以双引号忽略逗号

我有一个CSV文件,我在解析时遇到问题.我正在使用opencsv库.这是我的数据看起来和我想要实现的目标.

RPT_PE,CLASS,RPT_MKT,PROV_CTRCT,CENTER_NM,GK_TY,MBR_NM,MBR_PID"20150801","NULL","33612","00083249P PCP602","JOE SMITH ARNP","NULL","FRANK,LUCAS E"," 50004655200"

我遇到的问题是成员名称("FRANK, LUCAS E")被分成两列,成员名称应该是一个.我再次使用opencsv和逗号作为分隔符.有什么方法可以忽略双引号内的逗号吗?

        public void loadCSV(String csvFile, String tableName,
            boolean truncateBeforeLoad) throws Exception {

        CSVReader csvReader = null;
        if (null == this.connection) {
            throw new Exception("Not a valid connection.");
        }
        try {

            csvReader = new CSVReader(new FileReader(csvFile), this.seprator);

        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception("Error occured while executing file. "
                    + e.getMessage());
        }
        String[] headerRow = csvReader.readNext();

        if (null == headerRow) {
            throw new FileNotFoundException(
                    "No columns …
Run Code Online (Sandbox Code Playgroud)

java csv delimiter opencsv

10
推荐指数
1
解决办法
4811
查看次数

修剪OpenCSV中的前导和尾随空格

我正在使用OpenCSV CSVReader来读取文件中的一些逗号分隔值.我不确定如何修剪前导和尾随空格.当然,我能做到,String.trim()但不要那么干净.在文档中没有指定这样的选项.

java trim opencsv

9
推荐指数
1
解决办法
4061
查看次数

使用opencsv读取远程.csv文件

我一直在考虑这个问题很长一段时间.我正在尝试从Yahoo!的Stock API下载数据.当您使用API​​时,它会为您提供一个.csv文件.我一直在看opencsv,看起来很完美,除非我想避免下载和保存文件,如果可能的话.

根据示例,OpenCSV 只能从a读取FileReader.根据Oracle的文档FileReader,该文件需要是本地的.


是否可以使用OpenCSV从远程文件中读取而无需下载?

java opencsv

9
推荐指数
1
解决办法
7225
查看次数

读取资源文件夹android中的CSV文件

我正在开发netbeans的Android应用程序.我正在尝试使用opencsv读取CSV文件.当我将文件放在资源文件夹中并尝试从那里读取它时,在构建说无效资源目录时出错.我应该在哪里存储csv文件,以便每次应用程序启动时都可以读取它?

android opencsv

9
推荐指数
2
解决办法
2万
查看次数

带有列标题的StatefulBeanToCsv

我opencsv-4.0用来写一个csv文件,我需要在输出文件中添加列标题.

这是我的代码.

public static void buildProductCsv(final List<Product> product,
        final String filePath) {

    try {

        Writer writer = new FileWriter(filePath);

        // mapping of columns with their positions
        ColumnPositionMappingStrategy<Product> mappingStrategy = new ColumnPositionMappingStrategy<Product>();
        // Set mappingStrategy type to Product Type
        mappingStrategy.setType(Product.class);
        // Fields in Product Bean
        String[] columns = new String[] { "productCode", "MFD", "EXD" };
        // Setting the colums for mappingStrategy
        mappingStrategy.setColumnMapping(columns);

        StatefulBeanToCsvBuilder<Product> builder = new StatefulBeanToCsvBuilder<Product>(writer);

        StatefulBeanToCsv<Product> beanWriter = builder.withMappingStrategy(mappingStrategy).build();
        // Writing data to csv file
        beanWriter.write(product);
        writer.close(); …
Run Code Online (Sandbox Code Playgroud)

java csv opencsv

9
推荐指数
3
解决办法
1万
查看次数

如何将ArrayList <Object>写入csv文件

我有一个ArrayList<Metadata>,我想知道是否有一个用于处理CSV文件的Java API,它有一个write方法,它接受一个类似于.Net中LinqToCsv的ArrayList <>参数.据我所知,OpenCSV可用,但CsvWriter类不接受集合.我的元数据类是

public class Metadata{
    private String page;
    private String document;
    private String loan;
    private String type;
}
Run Code Online (Sandbox Code Playgroud)
ArrayList<Metadata> record = new ArrayList<Metadata>();
Run Code Online (Sandbox Code Playgroud)

一旦我填充了记录,我想将每一行写入csv文件.请建议.

java csv arraylist opencsv

8
推荐指数
1
解决办法
2万
查看次数

使用 OpenCSV 时获取 CsvBeanIntrospectionException

我正在尝试使用 openCSV 4.1 从 bean 列表中编写 CSV。但是,每当我运行程序时,我都会收到 CsvBeanIntrospectionException,然后收到 NoSuchMethodException: Unknown property 'fieldx' on class 'class TestObject'

我已成功使用读取器对应项将 CSV 读取到 bean 列表。

这是我的对象“TestObject”的代码:

import com.opencsv.bean.CsvBindByName;
import java.io.Serializable;

public class TestObject implements Serializable {
    @CsvBindByName
    int fieldx;
    @CsvBindByName
    int fieldy;
    public TestObject() {
    }
    public TestObject(int x, int y) {
        this.fieldx = x;
        this.fieldy = y;
    }

    public int getX() {
        return fieldx;
    }
    public int getY() {
        return fieldy;
    }
    public void setX(int x) {
        this.fieldx = x;
    }
    public void …
Run Code Online (Sandbox Code Playgroud)

java javabeans opencsv

8
推荐指数
3
解决办法
1万
查看次数

雅典娜无法使用 OpenCSVSerde 解析日期

我在 S3 上有一个非常简单的 csv 文件

"i","d","f","s"
"1","2018-01-01","1.001","something great!"
"2","2018-01-02","2.002","something terrible!"
"3","2018-01-03","3.003","I'm an oil man"
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下命令创建一个表

CREATE EXTERNAL TABLE test (i int, d date, f  float, s string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
LOCATION 's3://mybucket/test/'
TBLPROPERTIES ("skip.header.line.count"="1");
Run Code Online (Sandbox Code Playgroud)

当我查询表 ( select * from test) 时,出现如下错误:

HIVE_BAD_DATA:
解析字段 1 的字段值“ 2018-01-01”时出错:对于输入字符串:“2018-01-01”

更多信息:

  • 如果我将d列更改为字符串,则查询将成功
  • 我以前使用 Athena 解析文本文件中的日期;我相信使用LazySimpleSerDe
  • 绝对看起来像是 OpenCSVSerde 的问题

该文档明确暗示这是支持的。寻找遇到此问题的任何人,或任何建议。

csv hive opencsv presto amazon-athena

8
推荐指数
1
解决办法
3165
查看次数

标签 统计

opencsv ×10

java ×7

csv ×5

android ×2

amazon-athena ×1

arraylist ×1

delimiter ×1

hive ×1

javabeans ×1

presto ×1

sd-card ×1

trim ×1

unicode ×1

utf-8 ×1