[TIL] 2021-02-16
標準I/O
標準I/Oを担当するシステムクラスを理解します.
システムクラス
public final class System {
...
}
外部定義のプロパティと環境変数の情報を指定します.
public final static InputStream in = null;
public final static PrintStream out = null;
public final static PrintStream err = null;
標準入出力のターゲットの変更
PrintStream ps = null;
FileOutputStream output = null;
String filePath = "D:\\project\\workspace\\studyhalle\\src\\main\\java\\s1\\week13\\test.txt";
try {
output = new FileOutputStream(filePath);
ps = new PrintStream(output);
System.setOut(ps); // 출력대상을 파일로 변경
} catch (Exception e) {
e.printStackTrace();
}
// System.out은 파일로 대상을 변경했기 때문에 System.err 내용만 나옴
System.out.println("## System.out ##");
System.err.println("## System.err ##");
[ 실행결과 ]
## System.err ##
RandomAccessFile
int[] tmpArr = { 1, 10, 100, 1000, 2, 20, 200, 2000 };
// int배열의 데이터를 txt에 저장한 다음 출력함
String filePath = "D:\\project\\workspace\\studyhalle\\src\\main\\java\\s1\\week13\\testRandomAccess.txt";
String mode = "rw";
try {
RandomAccessFile file = new RandomAccessFile(filePath, mode);
for (int i=0; i<tmpArr.length; i++) {
file.writeInt(tmpArr[i]);
}
file.seek(0); // write()하면서 파일포인터가 마지막으로 이동했기때문에 포인터의 위치를 다시 처음으로 이동시킴
// while(true) {
// 아무것도 읽지 못하고 EOFException이 발생하는 것을 방지함
while(file.length() != file.getFilePointer()) {
System.out.println(file.readInt());
}
} catch (Exception e) {
e.printStackTrace();
}
📒 Reference
Reference
この問題について([TIL] 2021-02-16), 我々は、より多くの情報をここで見つけました https://velog.io/@pej4303/TIL-2021-02-16テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol