我有這樣一些字符串數組如下(注意,是每一個表現出不同的線條球員......以後的空間),Java編寫的列表字符串轉換成csv文件
["user1","track1","player1", "user1","track2","player2", "user1","track3","player3", ...]
我想分這數組分成兩部分(幾乎相等),根據行數(這裏是空格)。因此,例如,如果在這個數組中有40個空格,我需要將從第一個到第二個(第20行)開始的行存儲在一個文件中(我們稱之爲文件A),然後將其餘的文件放在文件B中。 I可以劃分數組列表,但我無法以正確的方式在CSV文件中編寫它。
這裏是我的代碼:
public static void main(String[] args) throws java.lang.Exception {
BufferedReader userlines = new BufferedReader(new FileReader("/..../usertrackplayer.csv"));
FileWriter output = new FileWriter(new File("/.../output.csv"));
String uLine = null;
ArrayList<String> list = new ArrayList<String>();
List<String> arrayList = new ArrayList<String>();
String currentUserId = null;
while ((uLine = userlines.readLine()) != null) {
String[] userData = uLine.split(",");
String userId = userData[0];
if (userId.equals(currentUserId)) {
// Do what ever we need while buffering same userId
}
else{
list.add(uLine);
int division = (int) Math.ceil(list.size()/2);
List<String> sublist = list.subList(0, division); //TO DEVIDE THE DATA OF EACH USERID INTO TWO ALMOST EQUAL PARTS, IT PUT THE FIRST HALF IN SUBLIST
//HERE I NEED TO WRITE THE OUTPUT OF SUBLIST INTO A CSV FILE, BUT HOW????
output.write(sublits); //--> THIS DOES NOT WORK SINCE SUBLIST IS NOT A STRING
currentUserId = userId;
list.clear();
}
list.add(uLine);
}
userlines.close();
output.close();
}
可能有人請幫助我知道我怎麼能在一個列表中字符串的數據寫入到一個空的csv文件? 我的第二個問題是:我怎麼可能分裂他們,只要有空間,並把它當作一條線..
感謝,
我編輯的答案,包括無opencsv庫寫入文件位。這將收集的字符串寫入文件中。注意:我沒有保證安全。你將不得不把這個作家包裝成一個try/catch/finally等,並抓住邊緣情況,但它表明了這個想法。 – pandaadb
非常感謝您的大力幫助..它的工作:)只有一個問題:有什麼辦法可以把空間指定在csv中的行嗎? (因爲我需要稍後將它導入到mysql中)。現在我的輸出是:''user1「,」track1「,」player1「,」user1「,」track2「,」player2「,」user1「....'而我需要它是''user1」 「track1」,「player1」,「user1」,「track2」,「player2」,「user1」 – mOna
我加了splitting,我把你輸入的問題從我輸入的文件中讀出。空格會給你你的行,用逗號分割它,你需要將新行寫到文件中,但是要把它們排成一行。 – pandaadb