java - println(char), 字符转成中文?

标签 java

请帮我解决这个问题。

A 有一个内容为“Thanh Le”的输入文件“Trial.txt”。

这是我在尝试从文件中读取时使用的函数:

    public char[] importSeq(){
    File file = new File("G:\\trial.txt");

    char temp_seq[] = new char[100];

    try{
    FileInputStream fis = new FileInputStream(file);
    BufferedInputStream bis = new BufferedInputStream(fis);
    DataInputStream dis = new DataInputStream(bis);

    int i = 0;

    //Try to read all character till the end of file
    while(dis.available() != 0){
        temp_seq[i]=dis.readChar();
        i++;
    }
    System.out.println(" imported");
    } catch (FileNotFoundException e){
        e.printStackTrace();
    } catch (IOException e){
        e.printStackTrace();
    }

    return temp_seq;
}

主要功能:

public static void main(String[] args) {

    Sequence s1 = new Sequence();

    char result[];

    result = s1.importSeq();

    int i = 0;
    while(result[i] != 0){
        System.out.println(result[i]);
        i++;
    }
}

这是输出。

运行:

 imported
瑨
慮
栠
汥
BUILD SUCCESSFUL (total time: 0 seconds)

最佳答案

老实说,这是一种将文本文件读入 char[] 的非常笨拙的方法。

这里有一个更好的例子,假设文本文件只包含 ASCII 字符。

File file = new File("G:/trial.txt");
char[] content = new char[(int) file.length()];
Reader reader = null;

try {
    reader = new FileReader(file);
    reader.read(content);
} finally {
    if (reader != null) try { reader.close(); } catch (IOException ignore) {}
}

return content;

然后要打印 char[],只需执行以下操作:

System.out.println(content);

请注意,InputStream#available() 不一定会执行您所期望的操作。

另见:

关于java - println(char), 字符转成中文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3895656/

相关文章:

java - 使用另一个方法中的参数访问方法中变量的值

java - Netbeans OutOfMemoryError : Java heap space, 代码格式化

java - 有没有运行良好的 Java COM 库?

java - 用于哈希码桶查找的算法

java - 优化 JQuery 数据表 - 处理大型数据集,同时在中间层(JAVA)处理花费超过 30 分钟

java - 无法解析的日期,以冒号分隔时区

java - 从 react-native 调用 java 类方法(不是 Android Activity java 类)

java - 如何从 LinearLayout 中删除所有 LinearLayouts?

java - map 上的流不保存 .map 更改

java - IE 中的 GWT 性能问题