본문 바로가기
안드로이드

자바 입출력(객체형식으로 파일 입출력, 소켓형식의 입출력)

by 호군 2011. 7. 19.
반응형
원문 : http://www.cyworld.com/B166er/4834163

안드로이드에서 파일 쓰기를 할 때 ObjectOutputStream을 사용하는 경우, 파일의 시작에 이상한 문자들이 들어가 있습니다. 이유는 잘 모르겠네요.
oOutputStream.flush() 를 하고, wirte를 해봤지만 마찬가지!
만약 문제가 되시는 분들은 BufferedOutputStream으로 write를 하시기 바랍니다.
좀 더 쉽게 사용하려다 고생하네요.
아 그리고 close는 필수! 그래야 파일에 써진답니다.

○ 파일 입출력
1. 파일 쓰기
File file = new File("파일경로");
FileOutputStream fOutputStream = new FileOutputStream(file);
BufferedOutputStream bOutputStream = new BufferedOutputStream(fOutputStream);
ObjectOutputStream oOutputStream = new ObjectOutputStream(bOutputStream);
oOutputStream.writeObject(....);
oOutputStream.close();

2. 파일 읽기
File file = new File("파일경로");
FileInputStream fInputStream = new FileInputStream(file);
BufferedInputStream bInputStream = new BufferedInputStream(fInputStream);
ObjectInputStream oInputStream = new ObjectOutputStream(bInputStream);
try {
    Object obj = oInputStream.readObject();
} catch (ClassNotFoundException e) {
}


○ 네트워크 입출력
1. 데이터 전송
Socket socket = new Socket(...);
BufferedOutputStream bOutputStream = new BufferedOutputStream(socket.getOutputStream());
ObjectOutputStream oOutputStream = new ObjectOutputStream(bOutputStream);
oOutputStream.writeObject(....);

2. 데이터 받기
Socket socket = new Socket(...);
BufferedInputStream bInputStream = new BufferedInputStream(socket.getInputStream());
ObjectInputStream oInputStream = new ObjectOutputStream(bInputStream);
try {
    Object obj = oInputStream.readObject();
} catch (ClassNotFoundException e) {
}
반응형