2016-01-28 2 views
-3

У меня есть некоторая логика, которая читает содержание и пишет. прежде чем отправить его клиенту, я хочу, чтобы удалить некоторое содержаниеКак получить строку после записи?

private void handGet(HttpServletRequest request, HttpServletResponse response, IFileStore file) 
      throws IOException, CoreException, NoSuchAlgorithmException, JSONException { 
     ....//set header 
     OutputStream outputStream = response.getOutputStream(); 
     Writer out = new OutputStreamWriter(outputStream, "UTF-8"); 
     out.write(EOL); 
     out.flush(); 
     IOUtilities.pipe(file.openInputStream(EFS.NONE, null), outputStream, true, false); 
     out.write(EOL + "--" + boundary + EOL); //$NON-NLS-1$ 
     out.flush(); 

    } 

public static void pipe(InputStream inputStream, OutputStream outputStream, boolean closeIn, boolean closeOut) throws IOException { 
     byte[] buffer = new byte[4096]; 
     int read = 0; 
     try { 
      while ((read = inputStream.read(buffer)) != -1) 
       outputStream.write(buffer, 0, read); 
     } finally { 
      if (closeIn) 
       safeClose(inputStream); 
      if (closeOut) 
       safeClose(outputStream); 
     } 
    } 

теперь я хочу, чтобы получить результат в неработающем или OutputStream и хочу заменить некоторые строки, как я могу получить данные, а затем Как я могу сохранить Это ?

+1

показать нам, что вы пробовали до сих пор –

ответ

1

Замена outputStream может быть сделано, как это (положить его в примерки блоке вашего метода pipe):

  // This method always replaces malformed-input and unmappable-character sequences with this charset's default replacement string. 
      String str = new String(buffer, Charset.forName("UTF-8")); 
      // Replaces each occurence of "replaceThis" with "", for regex use: replaceAll(String regex, String replacement) 
      str = str.replace("replaceThis", ""); 
      // This method always replaces malformed-input and unmappable-character sequences with this charset's default replacement byte array 
      byte[] replaced = str.getBytes(Charset.forName("UTF-8")); 
      while ((read = inputStream.read(buffer)) != -1) 
       outputStream.write(replaced); 

Это использует UTF-8 кодировку, если она доступна. Однако я не знаю о производительности.

Я не уверен, что OutputStreamWriter используется для но вы можете написать строку в том, что с помощью его метода write(String str, int off, int len)

+0

мы могли бы иметь короткий чат? – user1365697

Смежные вопросы