用于零终止字符串的 Java BufferedReader

标签 java bufferedinputstream null-terminated

我需要从 Java InputStream 中读取以零结尾的字符串。

有没有类似BufferedReader.readLine()的读取零结尾字符串的方法?

最佳答案

package com;

import java.io.*;
import java.util.Scanner;

public class AAA {

    private static final String ENCODING = "UTF-8";

    public static void main(String[] args) throws Exception {
        ByteArrayOutputStream bOut = new ByteArrayOutputStream();
        bOut.write("the first line".getBytes(ENCODING));
        bOut.write(0);
        bOut.write("the second line\r\n (long one)".getBytes(ENCODING));
        bOut.write(0);
        bOut.write("the third line".getBytes(ENCODING));
        printLines(new ByteArrayInputStream(bOut.toByteArray()));
    }

    public static void printLines(InputStream in) {
        Scanner scanner = new Scanner(in, ENCODING);
        scanner.useDelimiter("\u0000");
        while (scanner.hasNext()) {
            System.out.println(scanner.next());
            System.out.println("--------------------------------");
        }
    }
}

关于用于零终止字符串的 Java BufferedReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1686789/

相关文章:

java - 使用 while 循环和 if 语句获取随机生成的数字中每个数字的频率

java - 无法将数据作为列表从 spring Controller 传递到 View ?

java - 制作 pacman 时遇到问题?

java - 一次性将文件读入内存到底意味着什么?

java - 如果我关闭底层流,真的会发生资源泄漏吗?

c - 访问空终止字符

java - assertEquals(Double, Double) 和 assertEquals(double, double, delta) 之间的 Junit 区别

java - 在 Java 中用字节数组替换 BufferedInputStream

c++ - 为什么 strrchr() 返回 `char*` 而不是 `const char*` ?

c - 字符串中的 C 字符串指针如何​​以空值终止?