1) InputStream --1바이트씩읽기
package practice0502Input;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class InputStreamTest {
public static void main(String[] args) {
// 키보드를 입력스트림 객체에 할당한당
InputStream is = System.in; // 빨대꽂았다
InputStreamReader isr = new InputStreamReader(is); // 얘도 빨대 -2바이트를읽음
int inputData = 0;
System.out.print("데이터 입력하세요");
// InputStream이 제공하는 read()메소드는 1바이트(영문1개)를 읽고 해당
// 문자의 정수 코드값을 반환한다
try {
// inputData =is.read();
inputData = isr.read(); // 2바이트로 읽음
} catch (IOException e) {
e.printStackTrace();
}
// 바로 출력하면 정수 코드값이 출력되고 문자로 캐스팅하면 문자가 출력됨
System.out.println("실제 입력된 데이터(정수) : " + inputData);
System.out.println("실제 입력된 데이터(문자) : " + (char) inputData);
}
}
2) InputStreamReader - 2바이트씩 읽기(한글가능)
배열만들어서 글자읽기
package practice0502Input;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class InputStreamReaderTest {
public static void main(String[] args) {
InputStream is = System.in;
InputStreamReader isr = new InputStreamReader(is);
int inputData = 0;
//10개의 문자를 보관할 수 있는 배열객체 생성
char[] temp = new char[10];
System.out.print("데이터 입력");
//inputstreamreader의 read메소드의 인수가 배열이면
//배열크기만큼 배열에 문자를 읽은 후 읽은 문자의 수를 반환
try {
inputData =isr.read(temp);
}catch(IOException e ) {
e.printStackTrace();
}
for(int i =0; i<inputData; i++) {
System.out.print(temp[i]);
}
}
}
3)FileInputStream
package practice0502Input;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class FileInputStreamTest {
public static void main(String[] args) throws IOException {
int inputData = 0;
// FileInputStream 객체선언
FileInputStream fis;
try {
//실제 파일과 연결된 FileInputStream 객체생성
fis = new FileInputStream("sample.txt");
//실제파일에서 1바이트씩 데이터를 읽어 정수코드값을 반환
//정수 값을 문자형으로 캐스팅하여 출력한다
//데이터를 모두 읽으면 -1반환
while((inputData = fis.read()) != -1) {
System.out.print((char)inputData);
}
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
4)FileReader
package practice0502Input;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class FileReaderTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("파일명입력");
String s = sc.next();
FileReader fr = null;
int inputData = 0;
try {
fr = new FileReader(s+".txt");
// 실제 파일에서 2바이트씩 데이트를 읽어 정수코드값을 반환
// 정수값을 문자형으로 캐스팅하여 출력
// 데이터를 모두 읽으면 -1반환
try {
while ((inputData = fr.read()) != -1) {
System.out.print((char) inputData);
}
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
5)BufferedInputStream
package practice0502Input;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
public class BufferedInputStreamTest {
public static void main(String[] args) {
int inputData = 0;
try {
FileInputStream fis = new FileInputStream("sample.txt");
//FileInputStream 객체를 인수로 BufferedInputStream객체를 생성
BufferedInputStream bis = new BufferedInputStream(fis);
//보조스트림 ->버퍼(임시저장소 사용)에 담아두고
//버퍼에서 1바이트씩 읽어들인다
while((inputData = bis.read()) != -1) {
System.out.print((char)inputData);
}
bis.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}

6)BufferedReader
readLine 쓰고 못읽을떈 null로
package practice0502Input;
import java.io.BufferedReader;
import java.io.FileReader;
public class BufferedReaderTest {
public static void main(String[] args) {
String inputData = null;
try {
FileReader fr = new FileReader("sample.txt");
BufferedReader br = new BufferedReader(fr);
//readLine메소드로 라인단위로 읽어들인다
while((inputData = br.readLine()) != null ) {
System.out.println(inputData);
}
}catch(Exception e) {
}
}
}
'수업시간 JAVA > 이론' 카테고리의 다른 글
InetAddress/URL/ServerSocket (0) | 2023.05.02 |
---|---|
복습 파일 output친구들 (0) | 2023.05.02 |
Map (0) | 2023.04.26 |
제네릭 (0) | 2023.04.18 |
PreparedStatement (0) | 2023.04.13 |