System 한 접시를 장착하십시오.out.println()
System은 무엇입니까?
System은 Java로서lang 패키지 중 하나인final 클래스는 JDK1에 있습니다.0 중에 그 안에 존재하는 것은 초석이라고 할 수 있다.
아웃 한번 더.
out은 System의 정적 데이터 구성원이지만 이 구성원은 기본 클래스가 아니라java입니다.io.PrintStream 클래스의 객체입니다.out은 키워드 static로 수식되어 있으며, 우리는 직접 System을 통과할 수 있습니다.out에서 인용합니다. 대상을 먼저 만들 필요가 없습니다.
public final static PrintStream out = null;
out은 시스템 클래스를 초기화할 때 실례화되어 컨트롤러에 출력을 설정합니다.
private static void initializeSystemClass() {
props = new Properties();
initProperties(props); // initialized by the VM
sun.misc.VM.saveAndRemoveProperties(props);
lineSeparator = props.getProperty("line.separator");
sun.misc.Version.init();
FileInputStream fdIn = new FileInputStream(FileDescriptor.in);
// FileDescriptor out 。out FileDescriptor , " ( )" 。
FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out);
FileOutputStream fdErr = new FileOutputStream(FileDescriptor.err);
setIn0(new BufferedInputStream(fdIn));
//
setOut0(newPrintStream(fdOut, props.getProperty("sun.stdout.encoding")));
setErr0(newPrintStream(fdErr, props.getProperty("sun.stderr.encoding")));
loadLibrary("zip");
Terminator.setup();
sun.misc.VM.initializeOSEnvironment();
Thread current = Thread.currentThread();
current.getThreadGroup().add(current);
setJavaLangAccess();
sun.misc.VM.booted();
}
//native
private static native void setOut0(PrintStream out);
out 대상은 사용자 정의가 가능합니다.개발자는 실행 기간 동안out 대상을 수정할 수 있습니다.
public static void setOut(PrintStream out) {
checkIO();
setOut0(out);
}
예: out 출력 경로를 수정하고 결과를 문서로 출력합니다
public class ModifyOut {
public static void main(String args[]) {
System.setOut(new PrintStream(new FileOutputStream("ModifyOut.txt")));
System.out.println("out !");
}
}
마지막으로 printl ()
println () 의 입력 매개 변수는 다양한 매개 변수 유형을 포함하고 있습니다. 하나하나 열거해 보십시오.
java.io.PrintStream#println()
java.io.PrintStream#println(boolean)
java.io.PrintStream#println(char)
java.io.PrintStream#println(char[])
java.io.PrintStream#println(double)
java.io.PrintStream#println(float)
java.io.PrintStream#println(int)
java.io.PrintStream#println(long)
java.io.PrintStream#println(java.lang.Object)
java.io.PrintStream#println(java.lang.String)
각종 매개 변수의 println () 방법은 내용이 대동소이하다. 여기서 println (Object x) 을 예로 들면, println () 에서 무엇을 했는지 한 번 봅시다.
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
println () 방법의 대부분 파라미터를 사용하면 write (s) 방법을 실행하기 전에 모두 String 형식으로 변환됩니다.char[]만 String 유형으로 변환되지 않았습니다.왜?헤헤, 스트링 타입은 바로 차[]가 이룬 거야.
public void print(String s) {
if (s == null) {
s = "null";
}
// write(s) , String 。
write(s);
}
여러 가지 유형으로 String 유형 전환을 하는 것은 바로 이 write 방법을 집중적으로 통일적으로 처리하기 위해서이다
private void write(String s) {
try {
synchronized (this) {
//
ensureOpen();
//
textOut.write(s);
// 。
textOut.flushBuffer();
charOut.flushBuffer();
if (autoFlush && (s.indexOf('
') >= 0))
out.flush();
}
}
catch (InterruptedIOException x) {
Thread.currentThread().interrupt();
}
catch (IOException x) {
trouble = true;
}
}
/**
* writeBuffer 1024
*/
private static final int WRITE_BUFFER_SIZE = 1024;
public void write(String str) throws IOException {
write(str, 0, str.length());
}
public void write(String str, int off, int len) throws IOException {
synchronized (lock) {
char cbuf[];
if (len <= WRITE_BUFFER_SIZE) {
if (writeBuffer == null) {
writeBuffer = new char[WRITE_BUFFER_SIZE];
}
cbuf = writeBuffer;
} else { // Don't permanently allocate very large buffers.
cbuf = new char[len];
}
str.getChars(off, (off + len), cbuf, 0);
// ( , )
write(cbuf, 0, len);
}
}
// buffer ,offset buffer ,len 。
abstract public void write(char cbuf[], int off, int len) throws IOException;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.