Java 扩展OutputStream类;写入(int)方法

Java 扩展OutputStream类;写入(int)方法,java,outputstream,Java,Outputstream,因此,我的目标是在OutputStream类中实现write方法,以创建一个新的类NumStream,它基本上将int转换为字符串。以下是我的示例代码: import java.io.*; public class NumStream extends OutputStream { public void write(int c) throws IOException { // What goes here? } public static void m

因此,我的目标是在OutputStream类中实现write方法,以创建一个新的类NumStream,它基本上将int转换为字符串。以下是我的示例代码:

import java.io.*; 
public class NumStream extends OutputStream {
    public void write(int c) throws IOException {
        // What goes here?
    }

    public static void main(String[] args) {
        NumStream ns = new NumStream();
        PrintWriter pw = new PrintWriter(new OutputStreamWriter(ns));
        pw.println("123456789 and ! and # ");
        pw.flush(); // needed for anything to happen, try taking it out
    }
}
我尝试了几种不同的方法,我的结果总是导致程序编译,但当我运行它时,什么都没有发生。到目前为止,我已经尝试使用switch语句来生成以下结果:

public void write(int c) throws IOException {
StringBuffer sb = new StringBuffer();
    switch (c) {
        case 1: sb.append("1");
        break;
    //etc. through 9

我不确定下一步该怎么做或尝试以产生结果。:/有什么建议可以指引我正确的方向吗?

我也有同样的问题,下面是解决方法:

public class MyOutputStream extends OutputStream {

 StringBuilder anotatedText;

 public MyOutputStream() {
  // Custom constructor
 }

 @Override
 public void write(int b) {
     int[] bytes = {b};
     write(bytes, 0, bytes.length);
 }

 public void write(int[] bytes, int offset, int length) {
     String s = new String(bytes, offset, length);
     anotatedText.append(s);
 }

 public void myPrint() {
     System.out.println(anotatedText);
 }
}

我们需要做的就是正确地实现上面示例中明确说明的“write”方法。

Integer.toString(c)?但我认为您试图做的可能是个坏主意……我尝试使用Integer.toString()但在运行程序时仍然一无所获/StringBuffer的结果会去哪里?我想它应该是一个StringBuilder,正如Javadoc所说。已经用它的
print(int)
方法实现了这一点。有什么理由不能用它来代替编写自己的
NumStream
类?