Java int 到带有特殊字符的 char

标签 java encoding stream streaming inputstream

以前,我有这样的代码:

        Writer writer = new OutputStreamWriter(System.out, "UTF-8");
        generator.stream(writer);

现在,我的代码如下所示:

            string = new StringBuilder();
            OutputStream output = new OutputStream()
            {
                public String getString()
                {
                    return string.toString();
                }
                @Override
                public void write(int b) throws IOException {
                if ((char)b != '\n')
                {
                    string.append((char) b );
                }
            }

            public String toString(){
                return string.toString();
            }
        };

        Writer writer = new OutputStreamWriter(output, "UTF-8");
        generator.stream(writer);

        writer.close();
        PrintStream ps = new PrintStream(System.out, true, "UTF-8");
        ps.println(string.toString());

第一个代码的问题是它不能保证输出在一行中。另一方面,我的新代码解决了这个问题,但是,出现了一个新问题:输出发送的不是“Á”,而是“ᅢチ”,这很痛苦,因为应该支持匈牙利语和波兰语字符。对于非匈牙利语、非波兰语字符,我当前的输出是正确的,但是我的新代码不处理匈牙利语和波兰语书面语言中的特殊字符。我该如何克服这个问题?

谢谢。

最佳答案

改为扩展 OutputStreamWriter 类并覆盖适当的方法以删除换行符。

public class NoNewLineOutputStreamWriter extends OutputStreamWriter {

    public NoNewLineOutputStreamWriter(OutputStream out,String charset) throws UnsupportedEncodingException {
        super(out,charset);
    }

    public void write(String str) throws IOException {
        super.write(str.replaceAll("\n", ""));
    };

    public void write(int c) {
        if (c == '\n')
            return;
        else
            super.write(c);
    }

}

然后像以前一样给你的作家打电话

    Writer writer = new NoNewLineOutputStreamWriter(System.out, "UTF-8");
    generator.stream(writer);

关于Java int 到带有特殊字符的 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15262521/

相关文章:

Python编码注释格式

python - 向后差异编码如何用于测试集?

node.js - Node.js "request"库是否支持异步可迭代响应流?

java - 在 Java 中使用 Streams 实现相当于 Haskell 的 "or"函数的好方法是什么

java - 持久性逻辑应该放置在域模型 bean 中还是仅放置在 DAO 中?

java - 使用 char 确定字母数字?

encoding - 如何在 Sublime Text 中查看文件的当前编码?

Java - 泛型方法

java - Gradle无法下载Kotlin存储库

bash - 如果连接中断,ffmpeg 从实时流中录制视频将关闭