假设我刚刚使用了一个BufferedInputStream,将UTF-8编码文本文件的字节读入字节array.我知道我可以使用下面的 routine 将字节转换为字符串,但是有没有比迭代字节并转换每个字节更有效/更智能的方法呢?

public String openFileToString(byte[] _bytes)
{
    String file_string = "";

    for(int i = 0; i < _bytes.length; i++)
    {
        file_string += (char)_bytes[i];
    }

    return file_string;    
}

推荐答案

String的构造器

String str = new String(bytes, StandardCharsets.UTF_8);

如果你感到懒惰,可以使用Apache Commons IO库直接将InputStream转换为字符串:

String str = IOUtils.toString(inputStream, StandardCharsets.UTF_8);

Java相关问答推荐

LocalTime解析截断时间的第二个值

Java应用程序RAC感知

将@ManyToOne JPA Composite Key用作Id保存实体添加额外参数

在现有Json文件中添加新记录

OpenJDK、4K显示和文本质量

Quarkus keycloat配置不工作.quarkus. keycloak. policy—enforcer. enable = true在. yaml表示中不工作

Java中如何根据Font.canDisplay方法对字符串进行分段

使用意向过滤器从另一个应用程序启动服务

只需最少的代码更改即可将版本号标记添加到日志(log)

Java中的死锁及其重入锁和锁

在Frege中,我如何将一个字符串安全地转换为一个可能的Int?

Java泛型类方法的静态返回类型是否被类型擦除?

无法播放音频:从资源加载库GStreamer-Lite失败

如何使用Criteria Builder处理一对多关系中的空值?

将stringBuilder + forloop转换为stream + map

使用for循环时出现堆栈溢出错误,但如果使用if块执行相同的操作,则不会产生错误

我的代码是线程安全的吗?[Java、CAS、转账]

将BlockingQueue+守护程序线程替换为执行器

如何在单元测试中获得我的装饰Mapstruct映射器的实例?

Java泛型方法重载