我使用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'.有什么想法吗?
我用以下格式创建了一个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文件,我在解析时遇到问题.我正在使用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) 我正在使用OpenCSV CSVReader来读取文件中的一些逗号分隔值.我不确定如何修剪前导和尾随空格.当然,我能做到,String.trim()但不要那么干净.在文档中没有指定这样的选项.
我一直在考虑这个问题很长一段时间.我正在尝试从Yahoo!的Stock API下载数据.当您使用API时,它会为您提供一个.csv文件.我一直在看opencsv,看起来很完美,除非我想避免下载和保存文件,如果可能的话.
根据示例,OpenCSV 只能从a读取FileReader.根据Oracle的文档FileReader,该文件需要是本地的.
是否可以使用OpenCSV从远程文件中读取而无需下载?
我正在开发netbeans的Android应用程序.我正在尝试使用opencsv读取CSV文件.当我将文件放在资源文件夹中并尝试从那里读取它时,在构建说无效资源目录时出错.我应该在哪里存储csv文件,以便每次应用程序启动时都可以读取它?
我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) 我有一个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文件.请建议.
我正在尝试使用 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) 我在 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列更改为字符串,则查询将成功该文档明确暗示这是支持的。寻找遇到此问题的任何人,或任何建议。