複製程式碼如下:
導入java.io.File;
導入java.io.IOException;
導入java.util.List;
導入 com.google.common.base.Charsets;
導入 com.google.common.base.Joiner;
導入 com.google.common.base.Preconditions;
導入 com.google.common.collect.Lists;
導入 com.google.common.io.Files;
導入 com.google.common.primitives.Bytes;
公共類別 FooUtilsCsvHelper {
// csv的預設分隔符號是','
私有最終靜態字串DEFAULT_DELIMITER =“,”;
// 標記新行
私有最終靜態字串DEFAULT_END =“/r/n”;
// 如果您不需要 UTF-8,只需替換位元組數組即可。
私有最終靜態位元組 commonCsvHead[] = {(位元組)0xEF,(位元組)0xBB,
(位元組)0xBF};
/**
* 將原始碼寫入csv文件
*
* @參數來源
* @拋出IOException
*/
public static void writeCsv(List<List<String>> source) 拋出 IOException {
// 拋出 java.lang.NullPointerException
Preconditions.checkNotNull(源);
StringBuilder sbBuilder = new StringBuilder();
for (List<String> 清單:來源) {
sbBuilder.append(Joiner.on(DEFAULT_DELIMITER).join(列表)).append(
DEFAULT_END);
}
文件.write(位元組.concat(commonCsvHead,
sbBuilder.toString().getBytes(Charsets.UTF_8.toString())),
新檔案(“d:///123.csv”));
}
/**
* 簡單讀取csv文件
*
* @參數文件
* @拋出IOException
*/
公共靜態無效 readCsv(檔案檔案)拋出 IOException {
System.out.println(Files.readFirstLine(檔案, Charsets.UTF_8));
}
// 自己執行一個小測試。
公共靜態無效主(字串[] args)拋出IOException {
List<List<String>> source = Lists.newArrayList();
List<String> tmpL = Lists.newArrayList();
tmpL.add("測試標題1");
tmpL.add("測試titile2");
源.add(tmpL);
writeCsv(源);
readCsv(新檔案(“d:///123.csv”));
}
}