serialversionUID값을 지정하는것을 권장한다. 이는 컴파일 시 자동으로도 생성된다. 이는 해당객체의 버전을 명시한다.static final long serialversionUID = 1L;package ch27;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class NioSample {
public static void main(String[] args) {
NioSample sample = new NioSample();
sample.basicWriteAndRead();
}
private void basicWriteAndRead() {
String fileName = "/Users/jeongheekim/Downloads/test/nio.txt";
try {
writeFile(fileName,"My first NIO file");
} catch (Exception e) {
e.printStackTrace();
}
}
private void writeFile(String fileName, String data) throws IOException {
FileChannel channel = new FileOutputStream(fileName).getChannel();
byte[] bytes = data.getBytes();//1
ByteBuffer buffer = ByteBuffer.wrap(bytes);//2
channel.write(buffer);//3
channel.close();//자원반납
}
}
❓NIO방식이 IO에 비해 어떤 이유로 인해 그렇게 빠른가?
[연습문제]
java.io.Serializable을 import 하는 이유는 무엇인가요?*
java.io.Serializable의 serialVersionUID 를 지정하는 이유는 무엇인가요?*
자바에서 객체를 파일로 읽거나 쓸 때 사용하는 Stream 클래스 이름은 무엇인가요?*
transient 예약어의 용도는 무엇인가요?*
NIO가 생긴 이유는 무엇인가요?*
NIO에서 Channel의 용도는 무엇인가요?*
NIO에서 Buffer의 용도는 무엇인가요?*
NIO에서 Buffer의 상태를 확인하기 위한 메소드들에는 어떤 것들이 있나요?*
NIO에서 Buffer의 position을 변경하기 위한 메소드들에는 어떤 것들이 있나요?*
[참고]
https://www.educative.io/answers/what-is-the-javanio-package