티스토리에 저장했던 글을 옮겼습니다.
https://mrcocoball.tistory.com/93
public class SystemInTest1 {
public static void main(String[] args) {
System.out.println("알파벳 여러 개를 쓰고 [Enter]를 누르삼");
int i;
try {
InputStreamReader irs = new InputStreamReader(System.in); // byte를 int로 변경해줌
while((i=irs.read()) != '\n') {
// System.out.println(i);
System.out.print((char)i);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
기반 스트림 + 보조 스트림 A + 보조 스트림 B ....
public class FileInputStreamTest {
public static void main(String[] args) {
FileInputStream fis = null;
try {
fis = new FileInputStream("input.txt");
System.out.println((char)fis.read()); // javadoc 자주 읽어보는 습관
System.out.println((char)fis.read());
System.out.println((char)fis.read());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
fis.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (Exception e2) {
System.out.println(e2);
}
}
System.out.println("end");
}
}
public class FileInputStreamTest2 {
public static void main(String[] args) {
// try-with-resource 활용
int i;
try(FileInputStream fis = new FileInputStream("input.txt")){
while ( (i = fis.read()) != -1){ // read()의 경우 값이 없으면 int -1 값을 출력하므로
System.out.println((char)i);
}
System.out.println("end");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public class FileInputStreamTest3 {
public static void main(String[] args) {
// try-with-resource 활용
int i;
try(FileInputStream fis = new FileInputStream("input2.txt")){
byte[] bs = new byte[10];
while ( (i = fis.read(bs)) != -1){ // read()의 경우 값이 없으면 int -1 값을 출력하므로
/* for (int ch : bs) {
System.out.print((char)ch);
} */ // 배열에서 남아있는 자료 (UVWXYZ 이후에 QRST까지 같이 불러와짐) 가 있어서 향상된 for문 사용 x
for (int j = 0; j < i; j++) {
System.out.print((char)bs[j]);
}
System.out.println(" : " + i + "바이트 읽음");
}
System.out.println("end");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public class FileOutputStreamTest2 {
public static void main(String[] args) {
try(FileOutputStream fos = new FileOutputStream("output.txt")) {
fos.write(65); // A
fos.write(66); // B
fos.write(67); // C
}catch(IOException e) {
System.out.println(e);
}
System.out.println("end");
}
}
public class FileOutputStreamTest1 {
public static void main(String[] args) throws FileNotFoundException {
FileOutputStream fos = new FileOutputStream("output.txt", true); // append를 true로 (덮어쓰기가 아니라 이어쓰기)
try(fos) {
byte[] bs = new byte[26];
byte data = 65;
for(int i = 0; i<bs.length; i++) {
bs[i] = data++;
}
fos.write(bs);
}catch(IOException e) {
System.out.println(e);
}
System.out.println("end");
}
}
public class FileReaderTest {
public static void main(String[] args) {
try(FileReader fr = new FileReader("reader.txt");) {
int i;
while( (i = fr.read()) != -1) {
System.out.print((char)i);
}
System.out.println();
} catch (IOException e) {
}
System.out.println("end");
}
}
public class FileWriterTest {
public static void main(String[] args) {
try(FileWriter fw = new FileWriter("writer.txt")) {
fw.write('A'); // 문자 하나 출력
char buf[] = {'B', 'C', 'D', 'E', 'F', 'G'};
fw.write(buf); // 문자 배열 출력
fw.write("이엣타이가");
fw.write(buf, 1,2); // 문자 배열 일부 출력
fw.write("65"); // 숫자 그대로 출력
} catch (IOException e) {
}
System.out.println("출력 완료~");
}
}
InputStreamReader isr = new InputStreamReader(new FileInputStream());
public class InputStreamReaderTest {
public static void main(String[] args) {
try(InputStreamReader isr = new InputStreamReader(new FileInputStream("reader.txt"))) {
int i;
while( (i = isr.read()) != -1) { // 보조 스트림으로 읽음
System.out.print((char)i);
}
System.out.println();
} catch (IOException e) {
}
}
}
public class FileCopyTest {
public static void main(String[] args) {
long millisecond = 0;
try (FileInputStream fis = new FileInputStream("공부.zip");
FileOutputStream fos = new FileOutputStream("공부복사.zip");
millisecond = System.currentTimeMillis();
int i;
while ((i=bis.read()) != -1) {
bos.write(i);
}
millisecond = System.currentTimeMillis() - millisecond;
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(millisecond + "소요되었습니다.");
}
}
public class FileCopyTest {
public static void main(String[] args) {
long millisecond = 0;
try (FileInputStream fis = new FileInputStream("공부.zip");
FileOutputStream fos = new FileOutputStream("공부복사.zip");
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(fos)){
millisecond = System.currentTimeMillis();
int i;
while ((i=bis.read()) != -1) {
bos.write(i);
}
millisecond = System.currentTimeMillis() - millisecond;
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(millisecond + "소요되었습니다.");
}
}