标签: opencsv

安装 Java 库

由于我对 Java 很陌生,我想知道安装新库的正确过程(那些在我的 linux dist 存储库中不可用)。我应该把它们放在哪里?以及如何安装它们?例如,我下载了 openCsv ( http://opencsv.sourceforge.net/ ),但我不知道如何安装它。

java eclipse opencsv

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

防止opencsv将引号写入.csv文件

我正在从resultSet填充文件,如下所示:

      while(rs.next()){

          String[] entries = new String[3];
          entries[0] = rs.getString(1);
          entries[1] = ",";
          entries[2] = rs.getString(2);

          println("entries : "+entries);
          writer.writeNext(entries);

      }
Run Code Online (Sandbox Code Playgroud)

当我打开excel文件时,值包含双引号.所以test1,test2,test3从数据库读取并写入.csv文件时变为"test1","test2","test3"

如何将文本写入文件但不包括引号?

当我将条目打印到控制台时,不会打印双引号,所以我不知道它们被添加到何处?

java opencsv

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

如何在读取CSV时删除双引号

public class CSVTeast {
  public static void main(String[] args) {

      CSVTeast obj = new CSVTeast();
        obj.run();

      }

      public void run() {

        String csvFile = "D:\\text.csv";
        BufferedReader br = null;
        String line = "";
        String cvsSplitBy = "~";

        try {

            br = new BufferedReader(new FileReader(csvFile));
            while ((line = br.readLine()) != null) {

                    // use comma as separator

                String[] csvRead = line.split(cvsSplitBy);




                System.out.println("Value [date= " + csvRead[5] 
                                     + " , name=" + csvRead[9]+"]");

            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch …
Run Code Online (Sandbox Code Playgroud)

java opencsv

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

如何从opencsv中的特定标题中读取?

我有一个csv文件.我想从中提取特定的列.例如:说,我有csv:

id1,caste1,salary,name1
63,Graham,101153.06,Abraham
103,Joseph,122451.02,Charlie
63,Webster,127965.91,Violet
76,Smith,156150.62,Eric
97,Moreno,55867.74,Mia
65,Reynolds,106918.14,Richard
Run Code Online (Sandbox Code Playgroud)

如何使用opencsv只读取头文件caste1中的数据?

java opencsv

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

OpenCSV 避免使用 FileWriter 并返回 InputStream

我正在使用 OpenCsv,该new CSVWriter()方法将 Writer 作为参数。

我想要实现的是避免写入文件系统,而是返回一个InputStream. 我不知道该怎么做。不是很熟悉Streams也是我用的JAVA 7

我是否可以让 writeValues 方法返回一个 InputStream 并避免在文件系统上写入输出。

这是我的工作实现:

private static void writeValues(String[][] cellValues) throws IOException {

    CSVWriter writer = new CSVWriter(new FileWriter("/tmp/myfile.csv"));
    for(String[] row : cellValues) { 
        writer.writeNext(row);
    }
    writer.close();
}
Run Code Online (Sandbox Code Playgroud)

这就是我想要达到的目标。如何转换上述方法以避免使用 FileWriter。

private static InputStream writeValues(String[][] cellValues) throws IOException {

    InputStream inputStream = ?;

    CSVWriter writer = new CSVWriter(?);
    for(String[] row : cellValues) { 
        writer.writeNext(row);
    }
    writer.close();

    return inputStream;
}
Run Code Online (Sandbox Code Playgroud)

java csv inputstream java-7 opencsv

7
推荐指数
3
解决办法
8641
查看次数

如果 bean 列表为空,OpenCSV 不会写入标头

当使用带注释的 opencsv 和 StatefulBeanToCsv 时,当 bean 列表为空时,不会写入标头。我认为这个测试会成功,但事实并非如此。

private class bean1 {
    @CsvBindByName(column = "column1")
    private String col1;

    public String getCol1() {
        return col1;
    }

    public void setCol1(String col1) {
        this.col1 = col1;
    }
}

@Test
public void testOpenCsvEmptyBeanList() throws CsvException {
    StringWriter sw = new StringWriter();
    
    StatefulBeanToCsv<bean1> sbc = new StatefulBeanToCsvBuilder<bean1>(sw)
            .withLineEnd(CSVWriter.DEFAULT_LINE_END)
            .build();
    
    // empty bean list
    sbc.write(new ArrayList<>());
    
    assertEquals("column1" + CSVWriter.DEFAULT_LINE_END, sw.toString());
}
Run Code Online (Sandbox Code Playgroud)

有什么想法可以让这个测试有效吗?

java opencsv

7
推荐指数
1
解决办法
751
查看次数

附加到没有标题的 CSV 文件

我正在使用opencsv将 Java bean 写入带有标题的 CSV 文件。文件名包含当前日期。如果用户在同一天第二次运行它,它会附加到文件中,但会添加另一个标题行。

如何附加到文件但没有列标题。

    public class CSVExport {

final File USERHOME = new File(System.getProperty("user.home"));
final List<saleExport> listSaleExport = new ArrayList<>();
final ObjectMapper mapper = new ObjectMapper();

public void createCsvFile(String Region, Map<String, String> currentSale) throws IOException {

    mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
    // use column position mapping strategy for no headers?
    LocalDate today = LocalDate.now();

                final SaleExport saleExport = mapper.convertValue(currentSale, SaleExport.class);
                listSaleExport.add(saleExport);
                writeToFile(today +" LA.csv", listSaleExport);
}

public void writeToFile(String filename, List<listSaleExport> listSaleExport) throws IOException {

    File file = …
Run Code Online (Sandbox Code Playgroud)

java opencsv

6
推荐指数
2
解决办法
3741
查看次数

使用 OpenCSV 解析 csv 文件时没有找到类“java.beans.Introspector”

我正在使用 OpenCsv 为我的 android 应用程序解析 .csv 文件。我用 kotlin 编写代码。这是我的代码:

这就是我解析 csv 文件的方式:

val beans: List<csvDataClass> = CsvToBeanBuilder<csvDataClass>(FileReader(file))
            .withType(csvDataClass::class.java).build().parse()

    for (i:Int in 0..beans.size-1) {
        Log.d("Tag", " NAME = ${beans.get(i).name} Number = ${beans.get(i).phone_one_value}")
    }
Run Code Online (Sandbox Code Playgroud)

这是我要将 csv 数据转换为的对象类。

class csvDataClass {
@CsvBindByName (column = "Name")
var name:String = ""
@CsvBindByName (column = "Phone 1 - Value")
var phone_one_value:Int = 0

constructor() {}
constructor(name: String, phone_one_value: Int) {
    this.name = name
    this.phone_one_value = phone_one_value
}
Run Code Online (Sandbox Code Playgroud)

}

我在 build.gradle 文件中添加了这一行:

implementation 'com.opencsv:opencsv:4.1'
Run Code Online (Sandbox Code Playgroud)

这是我的 csv 文件内容: …

java csv android opencsv kotlin

6
推荐指数
1
解决办法
2404
查看次数

Android更新后opencsv不读取CSV

在我的手机昨晚更新之前,我的代码运行良好。我正在使用 opencsv 将手机存储中的 CSV 文件读取到我的应用程序中的数组中。这是代码...

    public static String[] getFileContents(File file) {
    String[] contentsArray = new String[500];
    if(file.exists()) {
        try {
            CSVReader reader = new CSVReader(new FileReader(file));
            String[] nextLine;
            while ((nextLine = reader.readNext()) != null) {
                System.arraycopy(nextLine, 0, contentsArray, 0, nextLine.length);
            }
        } catch (Exception e) {
            System.out.println("Failed file: " + file);
            System.out.println("You are here and sad but at least the file exists");
            e.printStackTrace();
        }
    } else {
        System.out.println("File does not exist");
    }

    return contentsArray;
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误...

I/System.out: Failed file: /storage/emulated/0/Documents/text/36-12644-Test …
Run Code Online (Sandbox Code Playgroud)

java android opencsv

6
推荐指数
1
解决办法
171
查看次数

CsvMalformedLineException:CSV 行末尾未终止的引用字段

我正在编写代码来处理 tar.gz 文件列表,其中有多个 csv 文件。我遇到了下面的错误

com.opencsv.exceptions.CsvMalformedLineException: Unterminated quoted field at end of CSV line. Beginning of lost text: [,,,,,,
]
    at com.opencsv.CSVReader.primeNextRecord(CSVReader.java:245)
    at com.opencsv.CSVReader.flexibleRead(CSVReader.java:598)
    at com.opencsv.CSVReader.readNext(CSVReader.java:204)
    at uk.ac.shef.inf.analysis.Test.readAllLines(Test.java:64)
    at uk.ac.shef.inf.analysis.Test.main(Test.java:42)
Run Code Online (Sandbox Code Playgroud)

导致此问题的代码如下,B 行。

public class Test {
    public static void main(String[] args) {
        try {
            Path source = Paths.get("/home/xxxx/Work/data/amazon/labelled/small/Books_5.json.1.tar.gz");
            InputStream fi = Files.newInputStream(source);
            BufferedInputStream bi = new BufferedInputStream(fi);
            GzipCompressorInputStream gzi = new GzipCompressorInputStream(bi);
            TarArchiveInputStream ti = new TarArchiveInputStream(gzi);
            CSVParser parser = new CSVParserBuilder().withStrictQuotes(true)
                    .withQuoteChar('"').withSeparator(',').
                    .withEscapeChar('|').           // Line A
                     build();
            BufferedReader br …
Run Code Online (Sandbox Code Playgroud)

java opencsv

6
推荐指数
1
解决办法
7292
查看次数

标签 统计

java ×10

opencsv ×10

android ×2

csv ×2

eclipse ×1

inputstream ×1

java-7 ×1

kotlin ×1