当前位置: 首页 > 面试题库 >

在Java中将字符添加到InputStream的开头和结尾

薛元忠
2023-03-14
问题内容

我有一个InputStream我需要在其开头和结尾添加字符,并且应该以另一个type变量结尾InputStream。我怎么容易做到这一点?


问题答案:

您需要一个SequenceInputStream和几个ByteArrayInputStream。您可以使用String.getBytes来为后者制作字节。SequenceInputStream很古老,因此使用起来有点笨拙:

InputStream middle ;
String beginning = "Once upon a time ...\n";
String end = "\n... and they lived happily ever after.";
List<InputStream> streams = Arrays.asList(
    new ByteArrayInputStream(beginning.getBytes()),
    middle,
    new ByteArrayInputStream(end.getBytes()));
InputStream story = new SequenceInputStream(Collections.enumeration(streams));

如果你有很多的字符添加,并且不希望将它们转换为字节 集体
,你可以把它们放在一个StringReader,然后用ReaderInputStream从下议院IO读取它们以字节为单位。但是您需要在项目中添加Commons
IO。确切的代码留给读者练习。



 类似资料:
  • 嗨,我有这个同时循环。此输出变量是一个 String 变量,它保留 的输出。 假设< code>br.readLine())给出了2行。 所以将这些行打印为: 有人能告诉我如何在第一行的开头和最后一行的结尾添加吗?像这样: 我通过做这样的事情来尝试这个: 这在每行后面添加了一个括号。 请帮帮我。

  • 问题内容: 我在Java程序中有两个字符串,我想以某种方式混合以形成两个新字符串。为此,我必须从每个字符串中提取一些构成字符并将其添加以形成新的字符串。我有这样的代码(this.eka和this.toka是原始字符串): 我正在获取.charAt(x)部分的数字,那么如何将字符转换为字符串? 问题答案: 只使用永远使用代替 例如,当位置arent不是固定值而变量 其中x,y,z是保存从中提取位置的

  • 公共类插入节点{ } 您好,代码在LinkedList add head和add last的实现之上。但是,当我运行代码时,我可以添加新节点作为链表上的最后一个节点,但我不能将新节点添加到链表的请求中。 运行此代码时,输出为: 加数法有效,但为什么不加前置呢?

  • 问题内容: 我有一个文件如下: 我想得到: 我可以编写一个Ruby脚本,但是如果不需要的话更好。 将包含。例如,这是一条路径。 问题答案: 如果包含,则可以使用不在中的任何其他字符,或转义,因此命令变为

  • 问题内容: 我需要将一些不可打印的字符添加到java中的字符串中,以便可以沿tcp管道发送它。字符对我正在使用的协议表示某种含义(分别记录分隔符和消息结尾) 最好的方法是什么? 理想情况下,我希望将它们称为常量,以便可以在需要的地方使用字符串conconanation / stringbuilder / string.format将其添加,而不必键入它们。 出于好奇,我需要的字符是ASCIIx1E

  • 问题内容: 是否可以在不迭代整个数组的情况下将字符串添加到String数组的开头。 问题答案: 唯一的方法是维护环形缓冲区。也就是说,您有一个计数器,它记住起始位置,然后移动它而不是移动数组中的所有条目。这仅适用于您重新定义“开始”的含义。 请参阅ArrayDeque的源代码,其中包含三个字段 因此,添加到开始像这样 注意:它移动头部,而不是将所有元素向下移动阵列。