import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class _09_DataIOExam {
public static void main(String[] args) throws Exception{
//문제 - 이름, 국어, 영어, 수학, 총점, 평균 점수를 /tmp/score.dat 파일에 입력하시오.
String name = "Kim";
int kor = 90;
int eng = 85;
int math = 95;
int total = kor + eng + math;
double average = (double)(total / 3);
//여러 타입을 읽고 씀
DataOutputStream out = new DataOutputStream(new FileOutputStream("/tmp/score.dat"));
out.writeUTF(name);
out.writeInt(kor);
out.writeInt(eng);
out.writeInt(math);
out.writeInt(total);
out.writeDouble(average);
out.close();
// /tmp/score.dat 파일을 출력하시오.
DataInputStream in = new DataInputStream(new FileInputStream("/tmp/score.dat"));
String readName = in.readUTF();
int readKor = in.readInt();
int readEng = in.readInt();
int readMath = in.readInt();
int readTotal = in.readInt();
double readAverage = in.readDouble();
in.close();
System.out.println(readName + readKor + readEng + readMath + readTotal + readAverage);
}
}
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
public class _10_ByteArrayIOExam {
public static void main(String[] args) throws Exception {
//ByteArray에 쓰기
int data1 = 1;
int data2 = 2;
ByteArrayOutputStream out = new ByteArrayOutputStream(); //메모리상에 ByteArray 데이터가 저장된다.
out.write(data1); //data1의 마지막 1byte에 저장한다.
out.write(data2);
out.close();
byte[] byteArray = out.toByteArray(); //메모리상에 저장된 byte배열을 return 해준다.
System.out.println(byteArray.length);
System.out.println(byteArray[0]);
System.out.println(byteArray[1]);
System.out.println();
System.out.println("----------------------");
System.out.println();
//ByteArray 읽어들이기
byte[] array = new byte[2];
array[0] = (byte)1;
array[1] = (byte)2;
ByteArrayInputStream in = new ByteArrayInputStream(array); //byt
int read1 = in.read();
int read2 = in.read();
int read3 = in.read();
in.close();
System.out.println(read1);
System.out.println(read2);
System.out.println(read3);
System.out.println(array[0]);
System.out.println(array[1]);
//charArrayReader, charArrayWriter도 비슷한 방법응로 사용가능
}
}
import java.io.StringReader;
import java.io.StringWriter;
public class _11_StringReaderWriter {
public static void main(String[] args) throws Exception{
//쓰기
StringWriter out = new StringWriter(); //생성자가 없는 것은 보통 메모리에 쓰여진다고 생각하면 쉽다.
out.write("Hello");
out.write(" ");
out.write("World");
out.write("!!!");
out.close();
String writeResult = out.toString();
System.out.println(writeResult);
System.out.println();
System.out.println("------------------------");
System.out.println();
//읽기
String readResult = "Hello to World!";
StringReader in = new StringReader(readResult);
int i = -1;
while ((i = in.read()) != -1) {
System.out.print((char)i);
}
in.close();
}
}