[JAVA] Sammeln Sie Zeilenvorschubcodes mit Aufzählung

Einführung

Bei der Ausgabe des Verarbeitungsergebnisses eines Programms in eine Datei muss möglicherweise ein anderer Code als der Standard-Zeilenvorschubcode der Ausführungsumgebung angegeben werden. Verarbeitung, die mit Symbolen wie "LF" und "CRLF" in Befehlszeilenparametern und Eigenschaftendateien angegeben wird und diese den Zeilenvorschubzeichenfolgen "\ n" und "\ n \ r" gemäß den angegebenen Symbolen im empfangenen Programm zuweist. Ich schrieb, aber ich bemerkte, dass es in Aufzählung zusammengestellt wurde.

Enum NewLine implementiert

enum Bei der Standardmethode valueOf (String name) stimmt der angegebene Name nicht überein

java.lang.IllegalArgumentException: No enum constant NewLine.XXX

Da eine Ausnahme wie diese ausgelöst wird, habe ich eine Methode get (String name) vorbereitet.

NewLine.java


public enum NewLine {
	CR("\r"),
	LF("\n"),
	CRLF("\r\n"),
	DEFAULT(System.lineSeparator());

	private final String value;
	
	private NewLine(String value) {
		this.value = value;
	}

	public String getValue() {
		return value;
	}

	static NewLine get(String name) {
		try {
			return valueOf(name);
		}
		catch (IllegalArgumentException | NullPointerException ignore) {}
		return DEFAULT;
	}
}

Anwendungsbeispiel

Dies ist ein Bild, das einen Zeilenumbruch in der Eigenschaft angibt. Dies ist ein Beispiel, das eine der NewLine-Aufzählungen als Eigenschaft angibt und in der Schreibmethode von Writer verwendet.

NewLineTest.java


public class NewLineTest {
	
	static Properties prop;
	
	@BeforeClass
	static public void init() {
		prop = new Properties();
		prop.setProperty("newline", "LF");
	}

	@Test
	public void test() throws Exception {
		
		NewLine EOL = NewLine.get(prop.getProperty("newline"));
		
		StringWriter writer = new StringWriter();
		writer.write("line");
		writer.write(EOL.getValue());
		
		System.out.print(writer);
	}
}

Recommended Posts

Sammeln Sie Zeilenvorschubcodes mit Aufzählung
Thymeleaf konvertiert den Zeilenvorschubcode in ein HTML-Zeilenvorschub-Tag und gibt ihn aus.