JAVA-分析CSV文件-更改分隔符



我遇到了一个问题,想问是否有人能帮我。我有一个处理CSV文件的Java应用程序。这些文件有一个分号作为";分隔符";。现在我想用pipe"来代替分号|"作为";分隔符";。最好的方法是什么?

我已经在图书馆或课堂上告诉自己";org.apache.commons.csv.CSVRecord";。很遗憾在这里找不到任何东西。

我使用类FlatItemReaderBuilder解析Spring Batch。

您也可以在非Spring应用程序中使用SpringBatch类。

在这里你可以找到一个例子:

https://www.petrikainulainen.net/programming/spring-framework/spring-batch-tutorial-reading-information-from-a-file/

您可以使用Scanner或FileInputStream

import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class ReadDelimited {
public static void main(String[] args) {
Scanner sc = null;
try {
sc = new Scanner(new File("D:\acct.csv"));
// Check if there is another line of input
while(sc.hasNextLine()){
String str = sc.nextLine();
// parse each line using delimiter
parseData(str);
}
} catch (IOException  exp) {
// TODO Auto-generated catch block
exp.printStackTrace();
}finally{
if(sc != null)
sc.close();
}           
}

private static void parseData(String str){    
String acctFrom, acctTo, amount;
Scanner lineScanner = new Scanner(str);
lineScanner.useDelimiter("|");
while(lineScanner.hasNext()){
acctFrom = lineScanner.next();
acctTo = lineScanner.next();
amount = lineScanner.next();
System.out.println("Account From- " + acctFrom + " Account To- " + acctTo + 
" Amount- " + amount);  
}
lineScanner.close();
}
}

参考代码原始链接

或者,如果File不是太大,请读取字符串中的File。通过换行将其拆分为string数组,然后使用所选的分隔符(如下面的代码(进行将来的拆分。

public static void main(String[] args) throws IOException {
FileInputStream fileInputStream=new FileInputStream("j:\test.csv");
String s1=new String(fileInputStream.readAllBytes());
String[] lineArray=s1.split("n");
List<String[]> separatedValues=new ArrayList<>();
for (String line: lineArray) {
separatedValues.add(line.split("\|"));
}
for (String[]  s: separatedValues) {
for (String s2:s ) {
System.out.print(s2+" ");
}
System.out.println("");
}
fileInputStream.close();
}

代码输出链路

原始CSV

相关内容

  • 没有找到相关文章

最新更新