CsvOutput.java
net.minecraft.util.CsvOutput
信息
- 全限定名:net.minecraft.util.CsvOutput
- 类型:public class
- 包:net.minecraft.util
- 源码路径:src/main/java/net/minecraft/util/CsvOutput.java
- 起始行号:L12
- 职责:
TODO
字段/常量
-
LINE_SEPARATOR- 类型:
String - 修饰符:
private static final - 源码定位:
L13 - 说明:
TODO
- 类型:
-
FIELD_SEPARATOR- 类型:
String - 修饰符:
private static final - 源码定位:
L14 - 说明:
TODO
- 类型:
-
output- 类型:
Writer - 修饰符:
private final - 源码定位:
L15 - 说明:
TODO
- 类型:
-
columnCount- 类型:
int - 修饰符:
private final - 源码定位:
L16 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.util.CsvOutput.Builder- 类型:
class - 修饰符:
public static - 源码定位:
L44 - 说明:
TODO
- 类型:
构造器
private CsvOutput(Writer output, List<String> headers) @ L18
- 构造器名:CsvOutput
- 源码定位:L18
- 修饰符:private
参数:
- output: Writer
- headers: List
说明:
TODO
方法
下面的方法块按源码顺序生成。
public static CsvOutput.Builder builder() @ L24
- 方法名:builder
- 源码定位:L24
- 返回类型:CsvOutput.Builder
- 修饰符:public static
参数:
- 无
说明:
TODO
public void writeRow(Object... values) @ L28
- 方法名:writeRow
- 源码定位:L28
- 返回类型:void
- 修饰符:public
参数:
- values: Object…
说明:
TODO
private void writeLine(Stream<?extends Object> values) @ L36
- 方法名:writeLine
- 源码定位:L36
- 返回类型:void
- 修饰符:private
参数:
- values: Stream<?extends Object>
说明:
TODO
private static String getStringValue(Object value) @ L40
- 方法名:getStringValue
- 源码定位:L40
- 返回类型:String
- 修饰符:private static
参数:
- value: Object
说明:
TODO
代码
public class CsvOutput {
private static final String LINE_SEPARATOR = "\r\n";
private static final String FIELD_SEPARATOR = ",";
private final Writer output;
private final int columnCount;
private CsvOutput(Writer output, List<String> headers) throws IOException {
this.output = output;
this.columnCount = headers.size();
this.writeLine(headers.stream());
}
public static CsvOutput.Builder builder() {
return new CsvOutput.Builder();
}
public void writeRow(@Nullable Object... values) throws IOException {
if (values.length != this.columnCount) {
throw new IllegalArgumentException("Invalid number of columns, expected " + this.columnCount + ", but got " + values.length);
} else {
this.writeLine(Stream.of(values));
}
}
private void writeLine(Stream<? extends @Nullable Object> values) throws IOException {
this.output.write(values.map(CsvOutput::getStringValue).collect(Collectors.joining(",")) + "\r\n");
}
private static String getStringValue(@Nullable Object value) {
return StringEscapeUtils.escapeCsv(value != null ? value.toString() : "[null]");
}
public static class Builder {
private final List<String> headers = Lists.newArrayList();
public CsvOutput.Builder addColumn(String header) {
this.headers.add(header);
return this;
}
public CsvOutput build(Writer writer) throws IOException {
return new CsvOutput(writer, this.headers);
}
}
}引用的其他类
- ClientboundPlayerInfoUpdatePacket
- 引用位置:
参数/字段
- 引用位置: