JavaIO에 대해 복습하는 시간을 가졌는데, ByteExample2의 문제점이 생겼다!
copy.txt을 지우고 해봤는데도 똑같은 문제가 발생한다....😂
이 부분은 추후에 어떤 문제 때문에 copy가 반복되는지 확인해 봐야겠다.
import java.io.*;
public class ByteExam1 {
public static void main(String[] args){
try(
FileInputStream fis = new FileInputStream("src/ByteExam1.java");
FileOutputStream fos = new FileOutputStream("copy.txt");
) {
int readCount;
while((readCount = fis.read()) != -1) {
fos.write(readCount);
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
import java.io.*;
public class ByteExam2 {
public static void main(String[] args) {
try(
FileInputStream fis = new FileInputStream("src/ByteExam2.java");
FileOutputStream fos = new FileOutputStream("copy.txt");
) {
int readCount;
byte[] buffer = new byte[512];
while((readCount = fis.read(buffer)) != -1) {
fos.write(buffer);
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
import java.io.*;
public class ByteExam2 {
public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream("src/ByteExam2.java");
fos = new FileOutputStream("copy.txt");
int readCount;
byte[] buffer = new byte[512];
while((readCount = fis.read(buffer)) != -1) {
fos.write(buffer);
}
}catch(Exception e) {
e.printStackTrace();
}finally {
try {
fis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
// 왜... 반복하는걸까...?
fos = new FileOutputStream("copy.txt");
int readCount;
byte[] buffer = new byte[512];
while((readCount = fis.read(buffer)) != -1) {
fos.write(buffer);
}
}catch(Exception e //잘림
import java.io.*;
public class ByteExam3 {
public static void main(String[] args) {
DataOutputStream dos = null;
try {
// 파일을 저장할 경로 설정
dos = new DataOutputStream(new FileOutputStream("copy.txt"));
// 파일에 쓸 내용
int int_i = 3; // 4byte
boolean boolean_b = true; // 1byte
Double double_d = 3.14; // 8byte
dos.writeInt(int_i);
dos.writeBoolean(boolean_b);
dos.writeDouble(double_d);
}catch(Exception e){
e.printStackTrace();
}finally {
try {
dos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
int
+ boolean
+ double
public class CharExam1 {
public static void main(String[] args) {
BufferedReader br = null;
PrintWriter pw = null;
try {
br = new BufferedReader(new FileReader("src/byteExam1.java"));
pw = new PrintWriter(new FileWriter("copy.txt"));
String line = null;
while((line = br.readLine()) != null) {
pw.write(line+"\n"); // \n을 붙이지 않으면 다 연결되서 나온다.
}
} catch (Exception e) {
e.printStackTrace();
}finally {
pw.close();
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}