diff --git a/classpath/java/io/PrintStream.java b/classpath/java/io/PrintStream.java index 43701b899e..be22f3cf5d 100644 --- a/classpath/java/io/PrintStream.java +++ b/classpath/java/io/PrintStream.java @@ -24,6 +24,17 @@ public class PrintStream extends OutputStream { this.autoFlush = autoFlush; } + public PrintStream(OutputStream out, boolean autoFlush, String encoding) + throws UnsupportedEncodingException + { + this.out = out; + this.autoFlush = autoFlush; + + if (! (encoding.equals("UTF-8") || encoding.equals("ISO-8859-1"))) { + throw new UnsupportedEncodingException(encoding); + } + } + public PrintStream(OutputStream out) { this(out, false); } diff --git a/test/Strings.java b/test/Strings.java index 823b024c02..df3ca334ff 100644 --- a/test/Strings.java +++ b/test/Strings.java @@ -199,7 +199,7 @@ public class Strings { .equals("I enjoy grape nuts. do you? you do?")); { java.io.ByteArrayOutputStream bout = new java.io.ByteArrayOutputStream(); - java.io.PrintStream pout = new java.io.PrintStream(bout); + java.io.PrintStream pout = new java.io.PrintStream(bout, true, "UTF-8"); String s = "I ♥ grape nuts"; System.out.println(s); pout.println(s); @@ -207,17 +207,14 @@ public class Strings { expect (arraysEqual (bout.toByteArray(), - (s + System.getProperty("line.separator")).getBytes())); + (s + System.getProperty("line.separator")).getBytes("UTF-8"))); - // note that this effectively asserts that the VM's default - // charset is UTF-8. If we want to make this test more - // portable, we should specify the charset explicitly. expect (arraysEqual (bout.toByteArray(), append (new byte[] { 73, 32, -30, -103, -91, 32, 103, 114, 97, 112, 101, 32, 110, 117, 116, 115 }, - System.getProperty("line.separator").getBytes()))); + System.getProperty("line.separator").getBytes("UTF-8")))); } expect("abc".lastIndexOf('b', 100) == 1);