반응형
✔️ 표준 입출력
- 콘솔(도스창)을 통한 데이터 입력과 콘솔로의 데이터 출력을 의미한다
📌 System.in, System.out, System.err
- System 클래스에 선언된 static 변수로 타입은 Input/PrintStream이지만 BufferedInput/OutputStream를 사용한다
- System.in : 콘솔로부터 데이터를 입력받는데 사용
- System.out : 콘솔로 데이터를 출력하는데 사용
- System.err : 콘솔로 데이터를 출력하는데 사용
try {
int input = 0;
while((input = System.in.read()) != -1) {
System.out.println("input:" + input + ", (char) input:" + (char) input);
}
} catch (IOException e) {}
📌 setIn(), setOut(), setErr()
- 콘솔 이외의 다른 입출력 대상으로 변경할 때 사용한다
- static void setOut(PrintStream out) : System.out의 출력을 지정된 PrintStream으로 변경
- static void setErr(PrintStream err) : System.err의 출력을 지정된 PrintStream으로 변경
- static void setIn(InputStream in) : System.in의 입력을 지정한 InputStream으로 변경
System.out.println("out : Hello World!");
System.err.println("err : Hello World!");
Scanner s = new Scanner(System.in); //jdk 1.5부터 Scanner를 통해 편하게 입력
📌 RandomAccessFile
- 하나의 클래스로 파일에 대한 입력과 출력을 모두 할 수 있다
- InputStream이나 OutputStream으로부터 상속받지 않고 DataInput 인터페이스와 DataOutput 인터페이스를 구현했다
- 기본 자료형 단위로 데이터를 다룰 수 있고 파일 포인터를 통해 어느 위치에서나 읽기/쓰기가 가능하다
try {
RandomAccessFile raf = new RandomAccessFile("test.dat", "rw");
System.out.println("포인터 위치 : " + raf.getFilePointer()); //0
raf.writeInt(100); //int라서 4byte만큼 포인터 위치 변경
System.out.println("포인터 위치 : " + raf.getFilePointer()); //4
raf.writeLong(100L); //long이라서 8byte만큼 포인터 위치 변경
System.out.println("포인터 위치 : " + raf.getFilePointer()); //12
} catch (IOException e) {}
✔️ File
File f = new File("/Users/chan/Documents/java/solve/src/Test.java");
System.out.println(f.getName()); //Test.java
System.out.println(f.getPath()); ///Users/chan/Documents/java/solve/src/Test.java
System.out.println(f.getAbsolutePath()); ///Users/chan/Documents/java/solve/src/Test.java
System.out.println(f.getParent()); ///Users/chan/Documents/java/solve/src
System.out.println(f.getCanonicalPath()); ///Users/chan/Documents/java/solve/src/Test.java
System.out.println(File.pathSeparator); // :
System.out.println(File.pathSeparatorChar); // :
System.out.println(File.separator); // /
System.out.println(File.separatorChar); // /
📄 참고
자바의 정석 3rd Edition
반응형
'📚 Study > JAVA' 카테고리의 다른 글
[JAVA] 네트워킹 (0) | 2022.05.14 |
---|---|
[JAVA] 직렬화(Serialization) (0) | 2022.05.13 |
[JAVA] 입출력과 스트림 (0) | 2022.05.13 |
[JAVA] 스트림(Stream) (0) | 2022.05.12 |
[JAVA] 람다와 함수형 인터페이스 (0) | 2022.05.11 |