Подтвердить что ты не робот

Как преобразовать результаты потока в строку

Я хочу преобразовать вывод результата потока в строку, так как хочу использовать его в Junit Я думаю, что мне нужно использовать строковый писатель, но Я не уверен, как именно использовать его.

StreamResult result = new StreamResult(new File("C:\\file.xml"));
transformer.transform(source, result);

Спасибо Федор

4b9b3361

Ответ 1

Взгляните и научитесь использовать javadocs класса StreamResult (http://java.sun.com/javase/6/docs/api/). Один из конструкторов StreamResult принимает объект Writer в качестве параметра. Вы увидите, что одним из подклассов Writer является StringWriter. Таким образом, чтобы получить строку из того, что записано в StreamResult, вы можете построить StringWriter, поместить его в StreamResult, transform() Source в StreamResult и получить строку из StringWriter.

//create a StringWriter for the output
StringWriter outWriter = new StringWriter();
StreamResult result = new StreamResult( outWriter );
...
transformer.transform( source, result );  
StringBuffer sb = outWriter.getBuffer(); 
String finalstring = sb.toString();

Ответ 2

StringWriter writer = new StringWriter();
transformer.transform(source, new StreamResult(writer));
String output = writer.toString();

Ответ 3

Вы можете использовать StringWriter таким образом:

StringWriter sw = (StringWriter) result.getWriter(); 
StringBuffer sb = sw.getBuffer(); 
String finalstring = sb.toString();