2013-03-27 1 views
0

파일에 대한 기본적인 질문이 있습니다 ... 내가 갇혀있는 것 같습니다.Java 소켓 및 파일 스트리밍

서버 - 클라이언트 소켓을 만들고 있습니다. 클라이언트는 반복적 인 방법과 다음 방법을 사용하여 서버에 정수의 무작위 수를 보냅니다. 나는이 모든 정수를 저장하는 서버 (예를 들어 MYFILE.TXT)는 파일로이다 싶어,

//BufferedReader in = new BufferedReader (new InputStreamReader (socket.getInputStream())); 
    number=in.read(); 

모두 다음 나는 이것을 읽고 싶은 :

//BufferedWriter out = new BufferedWriter(new OutputStreamWriter (sock.getOutputStream())); 
out.write(number); 
out.flush(); 

서버는 다음과 같이 그들을 받아 파일을 문자열로 (모든 정수 포함) 클라이언트로 다시 보냅니다.

아이디어가 있으십니까? 나는 몇 가지 방법을 시도했지만 지금은 완전히 붙어있어 정말 분명히 생각하지 않습니다 ... 누군가가 나를 조금 도와 줄 수 있다면 정말 고마워 할 것입니다.

건배

편집 : 나는 지금까지

FileOutputStream fos = new FileOutputStream("myfile.txt"); 
DataOutputStream dos = new DataOutputStream(fos); 
dos.writeInt(number); 

이러한 방법을 시도 그리고 내가

FileInputStream fin=new FileInputStream("myfile.txt"); 
DataInputStream dis = new DataInputStream(fin); 
    int numbers = dis.read(); 

이것을 읽으려고하지만 얻을 모든 숫자 0입니다 : S

+0

당신이 지금까지 시도한 방법에 대해 좀 더 자세히 설명해 주시겠습니까? – mthmulders

+0

@mthmulders 원래 본 게시물을 업데이트했습니다. –

+0

데이터를 작성한 후 파일에서 사용할 수 있는지 확인 했습니까? – Thihara

답변

0

파일 쓰기는 다음과 같이 할 수 있습니다.

FileOutputStream fileOutputStream = new FileOutputStream("test.txt"); 
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream)); 
// Make sure to write the data as a String 
bufferedWriter.write("" + number); 
bufferedWriter.close(); 
fileOutputStream.close(); 

이후, 읽기는 BufferedWriter를 사용하여이

FileInputStream fileInputStream = new FileInputStream("test.txt"); 
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream)); 
String line = bufferedReader.readLine(); 
number = Integer.valueOf(line); 

장점처럼 달성 할 수 있으며, BufferedReader은/쓰기 문자열을 읽고 인간이 읽을 수있는 파일을 가질 수 있다는 것입니다. DataOutputStream을 사용하면 바이너리 파일을 가지게되며 직접 데이터 형식을 변환 할 수 있습니다. 코드 예제에 대해서는

:

dis.read(); 

읽고 당신에게 바이트 수를 반환합니다 하지 실제 데이터. 당신은 이것을 할 것입니다

dis.readInt(); 
+0

답변 해 주셔서 감사합니다. FileOutputStream 및 BufferedWriter 객체에 대한 새 인스턴스를 만들어야합니까, 아니면 기존 객체를 사용할 수 있습니까? –

+0

필요에 따라 닫습니다. 이렇게하면 처음 읽은 후에 파일이 변경 될 때 항상 최신 데이터를 가져 오며 파일을 너무 오래 잠그지 않게됩니다. – mthmulders