Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将ByteArrayOutputStream转换为读卡器_Java_Unit Testing - Fatal编程技术网

Java 如何将ByteArrayOutputStream转换为读卡器

Java 如何将ByteArrayOutputStream转换为读卡器,java,unit-testing,Java,Unit Testing,拥有 如何通过tearrayoutputstream将转换为读取器?您可以尝试 ByteArrayOutputStream b = ...; //some code under test writes to b Reader result = (convert b to reader); IOUtils.contentEqualsIgnoreEOL(expected, result); 一个更简单的解决方案是检查缓冲区的内容 ByteArrayOutputStream baos =

拥有

如何通过tearrayoutputstream将
转换为
读取器

您可以尝试

ByteArrayOutputStream b = ...;

//some code under test writes to b

 Reader result = (convert b to reader);

 IOUtils.contentEqualsIgnoreEOL(expected, result);
一个更简单的解决方案是检查缓冲区的内容

ByteArrayOutputStream baos = 
Reader reader = new InputStreamReader(new ByteArrayInputStream(baos.toByteArray()));

这是可行的,但这样你可以复制所有的数据。没有办法避免这种情况吗?除非你自己实现。如果您担心效率,您可以使用StringBuilder来避免编码/解码,这可能需要更长的时间(或包装它),因为它对于单元测试的正确性比效率更重要。@MartijnCourteaux-如果您从
ByteArrayInputStream
开始,则不会。对于OP的用例来说,这并不重要。我需要任何
OutputStream
实现。。这需要与文件中的某些内容进行比较。在这种情况下,我将使用ByteArrayOutputStream并在完成时使用toString()。
assertEquals(expected, baos.toString().trim());