.csv文件是什么?
CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记。CSV文件是个纯文本文件,每一行表示一张图片的许多属性。你在收一套图集时,只要能找到它的CSV文件,用专用的软件校验后,你对该图集的状况就可以了如指掌。 每行相当于一条记录,是用“,”分割字段的纯文本数据库文件
在 java中解析 来吧上代码吧 依赖 maven
<dependency>
<groupId>de.siegmar</groupId>
<artifactId>fastcsv</artifactId>
<version>1.0.3</version>
</dependency>
gradle
implementation "de.siegmar:fastcsv:1.0.3"
File file = new File("/*/*/*.csv");
CsvReader csvReader = new CsvReader();
csvReader.setContainsHeader(true);
CsvContainer csv = csvReader.read(file, StandardCharsets.UTF_8);
for (CsvRow row : csv.getRows()) {
String str=row.getField("test");
}
也可以通过MultipartFile接受不过还要转成 File
public void add(MultipartFile file) throws IOException {
if (ObjectUtils.isEmpty(file)){
return;
}
CsvReader csvReader = new CsvReader();
csvReader.setContainsHeader(true);
CsvContainer csv = csvReader.read(multipartFile2File(file), StandardCharsets.UTF_8);
for (CsvRow row : csv.getRows()) {
String str=row.getField("test");
}
}
public static File multipartFile2File(MultipartFile multipartFile){
File file = null;
if (multipartFile != null){
try {
file=File.createTempFile("tmp", null);
multipartFile.transferTo(file);
System.gc();
file.deleteOnExit();
}catch (Exception e){
e.printStackTrace();
log.warn("multipartFile转File发生异常:"+e);
}
}
return file;
}
也可以用流读取 不需要依赖
public void add() throws IOException {
File file=new File("/*/*/*.csv");
file.setReadable(true);
file.setWritable(true);
InputStreamReader isr = null;
BufferedReader br = null;
try {
isr = new InputStreamReader(new FileInputStream(file), "UTF-8");
br = new BufferedReader(isr);
} catch (Exception e) {
e.printStackTrace();
}
String line = "";
ArrayList<String> records = new ArrayList<>();
try {
while ((line = br.readLine()) != null) {
System.out.println(line);
records.add(line);
}
System.out.println("csv表格读取行数:" + records.size());
} catch (IOException e) {
e.printStackTrace();
}
}
|