이 클래스와 같은 경로에 test.txt 파일 생성
가나다라마바사아자차카타파하abcdefghijklmnopqrstuvwxyz
FileReaderTest 클래스
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class FileReaderTest {
public static void main(String[] args) throws IOException {
String path = FileReaderTest.class.getResource("test.txt").getPath();
Reader reader = new FileReader(path);
char[] cbuf = new char[2]; // 한번에 문자 배열의 크기 만큼 읽을 수 있음
int readed =reader.read(cbuf); // 문자배열에 읽은 문자를 저장하고 읽은 문자 수 반환
System.out.println("읽은 문자 수 "+readed);
System.out.println(cbuf);
reader.close();
}
}
while문 사용
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class FileReaderTest {
public static void main(String[] args) throws IOException {
String path = FileReaderTest.class.getResource("test.txt").getPath();
Reader reader = new FileReader(path);
char[] cbuf = new char[2];
int readed;
while((readed=reader.read(cbuf))!=-1){
System.out.println("읽은 문자수: "+readed +" ,읽은 문자: " + new String(cbuf));
}
reader.close();
}
}
읽은 문자열 String 인스턴스에 누적하여 저장
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class FileReaderTest {
public static void main(String[] args) throws IOException {
String path = FileReaderTest.class.getResource("test.txt").getPath();
Reader reader = new FileReader(path);
char[] cbuf = new char[2];
String data = ""; // 여기에 읽은 문자를 누적
while((reader.read(cbuf))!=-1){
data += new String(cbuf); // 문자배열을 형변환하여 스트링 인스턴스에 누적
}
System.out.println(data);
reader.close();
}
}
스트링 버퍼 사용
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class FileReaderTest {
public static void main(String[] args) throws IOException {
String path = FileReaderTest.class.getResource("test.txt").getPath();
Reader reader = new FileReader(path);
char[] cbuf = new char[2];
StringBuffer sb = new StringBuffer(); // 스트링버퍼 생성
while((reader.read(cbuf))!=-1){
sb.append(cbuf); // 스트링 버퍼에 문자배열 누적
}
System.out.println(sb); // 결과확인
reader.close();
}
}
문자배열의 크기를 조절하여 한번에 읽기
public class FileReaderTest {
public static void main(String[] args) throws IOException {
String path = FileReaderTest.class.getResource("test.txt").getPath();
Reader reader = new FileReader(path);
char[] cbuf = new char[100]; // 배열 크기 조절
reader.read(cbuf);
System.out.println(cbuf); // 결과 확인
reader.close();
}
}
read(cahr[] cbuf, int offset, int length)
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Arrays;
public class FileReaderTest {
public static void main(String[] args) throws IOException {
String path = FileReaderTest.class.getResource("test.txt").getPath();
Reader reader = new FileReader(path);
char[] cbuf = new char[100];
Arrays.fill(cbuf,0,3,'#');// {#,#,#, ... }
// System.out.println(Arrays.toString(cbuf)); // 배열 상태 확인
reader.read(cbuf,3,5); // cbuf배열의 cbuf[3]의 위치부터 읽은 문자 5개 저장
System.out.println(Arrays.toString(cbuf)); // 배열 상태 확인
reader.close();
/*
reader.read(cbuf)는 다음과 동일하다.
reader.read(cbuf,0,cbuf.length)
*/
}
}
Systme.in 예제 (0) | 2020.06.14 |
---|---|
FileInputStream 클래스 read() 예제 (0) | 2020.06.14 |
FileOutStream write()메소드 예제 (0) | 2020.06.14 |
FileWriter 클래스 write() 메소드 예제 (0) | 2020.06.14 |
FileInputStream read() 메소드 예제 (0) | 2020.06.14 |
댓글 영역