复制代码代码如下:
java.io.File importieren;
import java.io.IOException;
java.util.List importieren;
import com.google.common.base.Charsets;
import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
com.google.common.io.Files importieren;
import com.google.common.primitives.Bytes;
öffentliche Klasse FooUtilsCsvHelper {
// Das Standardtrennzeichen von csv ist „,“
private final static String DEFAULT_DELIMITER = ",";
// Markiere eine neue Zeile
private final static String DEFAULT_END = "/r/n";
// Wenn Sie kein UTF-8 möchten, ersetzen Sie einfach das Byte-Array.
privates letztes statisches Byte commonCsvHead[] = { (Byte) 0xEF, (Byte) 0xBB,
(Byte) 0xBF };
/**
* Quelle in eine CSV-Datei schreiben
*
* @param-Quelle
* @throws IOException
*/
public static void writeCsv(List<List<String>> source) löst eine IOException {
// Aoid java.lang.NullPointerException
Preconditions.checkNotNull(source);
StringBuilder sbBuilder = new StringBuilder();
for (List<String> list : source) {
sbBuilder.append(Joiner.on(DEFAULT_DELIMITER).join(list)).append(
DEFAULT_END);
}
Files.write(Bytes.concat(commonCsvHead,
sbBuilder.toString().getBytes(Charsets.UTF_8.toString())),
neue Datei("d:///123.csv"));
}
/**
* Lesen Sie einfach eine CSV-Datei
*
* @param-Datei
* @throws IOException
*/
public static void readCsv(File file) löst eine IOException {
System.out.println(Files.readFirstLine(file, Charsets.UTF_8));
}
// Führen Sie selbst einen kleinen Test durch.
public static void main(String[] args) löst eine IOException {
List<List<String>> source = Lists.newArrayList();
List<String> tmpL = Lists.newArrayList();
tmpL.add("Titel1");
tmpL.add("Übertitel2");
source.add(tmpL);
writeCsv(source);
readCsv(new File("d:///123.csv"));
}
}