2015-01-20 5 views
0

MimeMessage에서 inputstream을 가져오고 있습니다. InputStream에서 마지막에 \ r \ n을 추가하고 싶습니다. \ r \ nBufferedInputStream의 끝에 문자 추가 java

메시지의 끝을 나타냅니다.

좋습니다.

BufferedReader input; 

    if(stream != null){ 
     input = new BufferedReader(new InputStreamReader(
       stream)); 
    String responseLine = ""; 
    String server_response = ""; 
    try { 
     while (((responseLine = input.readLine()) != null) { 
      server_response = server_response + responseLine + "\r\n"; 
     } 
    } catch (IOException e) { 

    } 
    server_response = server_response + "\r\n.\r\n"; 
    } 

내가 뭔가를 그리워 이니

+0

그냥 추가 할 수있는 경우

public class ConcatInputStream extends InputStream { private final InputStream[] is; private int last = 0; ConcatInputStream(InputStream[] is) { this.is = is; } public static InputStream of(InputStream... is) { return new ConcatInputStream(is); } @Override public int read(byte[] b, int off, int len) throws IOException { for (; last < is.length; last++) { int read = is[last].read(b, off, len); if (read >= 0) return read; } throw new EOFException(); } @Override public int read() throws IOException { for (; last < is.length; last++) { int read = is[last].read(); if (read >= 0) return read; } throw new EOFException(); } @Override public int available() throws IOException { long available = 0; for(int i = last; i < is.length; i++) available += is[i].available(); return (int) Math.min(Integer.MAX_VALUE, available); } } 

와 함께 비행에 그것을 추가 할 수 있습니까? –

+0

@MuhammedRefaat 추가하는 방법? Java 코드를 사용하여 설명하십시오. – Roshan

+0

텍스트가 생성되면 추가해야합니다. 또 다른 옵션은 연결 스트림을 작성하는 것이지만 훨씬 더 어렵습니다. –

답변

5

당신은 문제가 무엇인지, 당신이

InputStream in = 
InputStream in2 = ConcatInputStream.of(in, 
           new ByteArrayInputStream("\r\n.\r\n".getBytes())); 
+0

while 루프를 사용하고 싶다. 내가 증가하기 전에 돌아 오는 것이 내 마음에 드는 비트이다. :) –

+0

@ md_5 당신은 상상이된다. 파일에서 큰 이메일을 보냅니다. 이 솔루션을 사용하면 한 번에 몇 KB의 청크를 읽을 수 있으며 마지막에'.'을 보낼 수 있습니다. 처음에 모든 데이터를 읽는 경우 이상적인 파일 크기의 최소 1-2 배를 사용해야합니다. ;) –

+0

@ md_5 멜버른의 어느 부분에서 왔습니까? 나는 엘삼 북쪽에서 자랐다. –

1

는 그냥 해당 문자열에 추가 한 후, 문자열의 InputStraem 값을 저장? 또는 당신이 요구 한 것?

+0

@PeterLawrey InputStream을 while 루프 안에 넣고 끝까지 모든 입력 행을 읽었을 때''\ r \ n. \ r \ n "'으로 행을 식별하고 싶다고 생각합니까? 내가 이해할 수있는 것은 그가 "마지막에 추가하고 싶다"라고 말했듯이, 입력의 마지막에 그것을 덧붙이고 싶다는 것입니다. –

+0

사실 나는 모릅니다. 당신이 옳을 수도 있고 맞을 수도 있습니다 나는 그가 조금 더 설명 할 필요가 있다고 생각한다. –

+1

글쎄, 당신은 바로 그 것이다. –