9
IOUtils를 테스트하고 있습니다. 나는 바이트 배열로 InputStream를 변환하는 데 문제가 있습니다String.getBytes()와 IOUtils.toByteArray()의 차이점은 무엇입니까?
private static final String LOREM_IPSUM = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
@Test
public void testInputStreamToByteArray() throws IOException {
byte[] expecteds = LOREM_IPSUM.getBytes();
byte[] actuals = org.apache.commons.io.IOUtils.toByteArray(new StringInputStream(LOREM_IPSUM));
assertArrayEquals(expecteds, actuals);
}
스택 트레이스 :
java.lang.AssertionError: array lengths differed, expected.length=56 actual.length=112
at org.junit.Assert.fail(Assert.java:91)
at org.junit.internal.ComparisonCriteria.assertArraysAreSameLength(ComparisonCriteria.java:72)
at org.junit.internal.ComparisonCriteria.arrayEquals(ComparisonCriteria.java:36)
at org.junit.Assert.internalArrayEquals(Assert.java:414)
at org.junit.Assert.assertArrayEquals(Assert.java:200)
at org.junit.Assert.assertArrayEquals(Assert.java:213)
at [...].testInputStreamToByteArray(HttpsTest.java:20)[...]
내가 테스트를 통과하지 왜 표시되지 않습니다를. 뭐가 잘못 되었 니?
감사합니다! 그러나 toByteArray는 InputStream과 String을 허용하지 않습니다. 두 가지 옵션 : 'IOUtils.toByteArray (new StringReader (LOREM_IPSUM), "UTF-8"); IOUtils.toByteArray (new InputStreamReader ("UTF-8")); – Falci
아, 당신이 java.io.InputStream을 사용하고 있다는 것을 알지 못했습니다. 더 구체적으로 StringReader : byte [] actuals = org.apache.commons.io.IOUtils.toByteArray (new StringReader (LOREM_IPSUM), "UTF-8"); ' –
내 의견 그냥 분명히했다. 다시 감사합니다. – Falci