[英]JAVA - Parsing CSV File - Change delimiter
我有一個問題,想問問是否有人可以幫助我。 我有一個 Java 應用程序,它處理 CSV 個文件。 這些文件有一個分號作為“分隔符”。 現在我想使用 pipe "|" 而不是分號作為“分隔符”。 做這個的最好方式是什么?
我已經在圖書館或class“org.apache.commons.csv.CSVRecord”通知了自己。 不幸的是在這里找不到任何東西。
我使用 class FlatItemReaderBuilder 來解析 Spring Batch。
您還可以在非 Spring 應用程序中使用 Spring 批處理類。
在這里你可以找到一個例子:
你可以使用 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();
}
}
參考代碼原鏈接
或者如果文件不是太大,則讀取字符串中的文件通過按換行符拆分將其分成字符串數組,然后使用選擇的分隔符進行拆分,如下面的代碼所示。
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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.