"안녕, 아미고, 다시 한 번."
"안녕하세요, Rishi. 오늘 수업은 무엇에 관한 것입니까?"
"오늘은 독자와 작가에 대해 이야기하겠습니다."
"하지만 Rishi, 나는 이미 그들에 대해 거의 모든 것을 알고 있습니다!"
"반복은 배움의 어머니다."
"음. 알았어."
" Reader 및 Writer 는 InputStream 및 OutputStream 과 유사 하지만 바이트가 아닌 문자로 작동합니다. 때로는 바이트 스트림이라고 하는 InputStream 및 OutputStream 과 달리 문자 스트림이라고도 합니다."
"하나는 문자용이고 다른 하나는 바이트용입니다. 기억합니다."
"그뿐만이 아닙니다. 이 클래스는 텍스트 및 문자열과 함께 작동하도록 특별히 설계되었습니다. 오늘 우리는 이러한 추상 클래스의 두 가지 클래식 구현인 FileReader 및 FileWriter를 살펴보겠습니다 ."
"다음은 FileReader 클래스 의 메서드입니다 ."
방법 | 설명 |
---|---|
int read() |
스트림에서 한 문자를 읽고 반환합니다. |
int read(char cbuf[], int offset, int length) |
문자 배열을 읽고 읽은 문자 수를 반환합니다. |
boolean ready() |
스트림에서 읽을 수 있으면 true를 반환합니다. |
void close() |
입력 스트림을 닫습니다. |
int read(java.nio.CharBuffer target) |
문자 집합을 버퍼로 읽습니다. |
int read(char cbuf[]) |
문자 배열을 읽습니다. |
long skip(long n) |
스트림에서 n자를 건너뜁니다. |
String getEncoding() |
스트림의 현재 인코딩을 반환합니다. |
"음, 거의 다 알고 있습니다. 하지만 FileWriter는 어떻습니까?"
방법 | 설명 |
---|---|
void write(int c) |
스트림에 한 문자를 씁니다. |
void write(char cbuf[], int off, int len) |
스트림에 문자 배열을 씁니다. |
void write(char cbuf[]) |
스트림에 문자 배열을 씁니다. |
void write(String str, int off, int len) |
문자열의 일부를 스트림에 씁니다. |
void write(String str) |
스트림에 문자열을 씁니다. |
void flush() |
메모리에 캐시된 모든 것을 디스크에 기록합니다. |
void close() |
스트림을 닫습니다. |
String getEncoding() |
스트림의 현재 인코딩을 반환합니다. |
"나도 알아!"
"멋지네요. 그럼 흥미로운 예를 하나 봅시다. 나중에 디에고가 당신에게 더 많은 일을 줄 것입니다."
"파일을 한 줄씩 어떻게 읽나요? 코드를 작성할 수 있나요?"
"쉽게 봐:"
// Create a list for storing the lines
List<String> list = new ArrayList<String>();
// Open the file
File file = new File("c:/document.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
// As long as the file isn't empty, read from it
while (reader.ready())
{
list.add(reader.readLine());
}
// Close the file
reader.close();
"음. 나쁘지 않아."
"나쁘지 않죠? 모두 단순하고 아름다워요. Rishi 인정하세요. 저는 이미 I/O 스레드에 대한 뛰어난 숙달력을 가지고 있습니다. 여기서 개선할 수 있는 점은 무엇입니까?"
"음, 예를 들어 다음과 같이 할 수 있습니다."
File file = new File("c:/document.txt");
List list = Files.readAllLines(file.toPath(), Charset.defaultCharset());
"흠. 그게 더 짧네요. 그리고 오늘 당신은 이 모든 방법에 대해 저에게 말했습니다. 다시 작업하겠습니다. 강의 감사합니다, Rishi."
"행운을 빌어요, 아미고."