मैं 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 इनपुटस्ट्रीम और स्ट्रिंग को स्वीकार नहीं करता है। दो विकल्प: 'IOUtils.toByteArray (नया स्ट्रिंग रीडर (LOREM_IPSUM)," यूटीएफ -8 "); IOUtils.toByteArray (नया इनपुटस्ट्रीम रीडर (है), "यूटीएफ -8"); ' – Falci
आह, ध्यान नहीं दिया कि आप java.io.InputStream का उपयोग कर रहे हैं। आपको एक पाठक, या अधिक विशेष रूप से स्ट्रिंग रीडर का उपयोग करना होगा: 'बाइट [] वास्तविक = org.apache.commons.io.IOUtils.toByteArray (नया स्ट्रिंग रीडर (LOREM_IPSUM)," यूटीएफ -8 ");' –
मेरी टिप्पणी सिर्फ स्पष्ट करने के लिए था। फिर से धन्यवाद। – Falci