当前位置: 首页 > 知识库问答 >
问题:

Java中的mark()和reset()方法

连正信
2023-03-14

根据留档,

val mark(int readlimited):标记此输入流中的当前位置。PushbackInputStream的mark方法什么都不做。

无用重置():将此流重新定位到上次在此输入流上调用标记方法时的位置。PushbackInputStream类的方法重置除了抛出IOException之外什么也不做。

你可以检查上面的“无所事事”。所以,如果是这种情况,为什么和在哪里这是有用的?在什么情况下,我可以使用上面的两种方法?

下面是例子:

import java.io.ByteArrayInputStream; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.io.PushbackInputStream; 
public class PushbackInputStreamDemo  
{ 
    public static void main(String arg[]) throws Exception 
    { 
        PrintWriter pw = new PrintWriter(System.out, true); 
        String str = "GeeksforGeeks a computer science portal "; 
        byte b[] = str.getBytes(); 
        ByteArrayInputStream bout = new ByteArrayInputStream(b); 
        PushbackInputStream push = new PushbackInputStream(bout); 

        int c; 
        while((c=push.read())!=-1) 
        { 
            pw.print((char)c); 
        } 
        pw.println(); 

        // marking the position  
        push.mark(5); 

        // reseting is not supported throw exception 
        push.reset(); 

        pw.close(); 
    } 
} 

以上是示例,但没有得到这两种方法的确切功能。请引导。

共有1个答案

公孙宏畅
2023-03-14

标记和重置方法是可选操作,并非每个InputStream都需要支持。您可以调用markSupported查看是否支持。

PushbackInputStream不支持这些方法。

这些方法仍然存在,因为它们是在InputStream接口中定义的。也许是一个糟糕的设计决策(可以添加到单独的界面),但事实就是这样。

 类似资料:
  • 全部显示 将指定的内置命令栏重置为默认的配置,或将指定的内置命令栏控件重置为其初始的函数和图符。 expression.Reset expression 必需。该表达式返回一个CommandBar、CommandBarControl、CommandBarButton、CommandBarPopup 或CommandBarComboBox 对象。 说明 重置一个内置控件将恢复该控件原来对应的动作,并

  • 本文向大家介绍Java ByteArrayOutputStream reset()方法及示例,包括了Java ByteArrayOutputStream reset()方法及示例的使用技巧和注意事项,需要的朋友参考一下 ByteArrayOutputStream类方法 reset()方法在java.io包中可用。 reset()方法用于重置此流(即,它将删除此流中所有当前消耗的输出,并将变量计数重

  • mark是一个mac下的免费开源的markdown编辑和计划todo程序,使用tui.editor和electron构建。 tui.editor是最热门的开源项目之一。 tui.editor(TOAST UI Editor)是一款所见即所得的Markdown编辑器。TOAST UI Editor提供Markdown模式和WYSIWYG模式。它的功能非常强大,你可以编辑表格,UML图和图表等。 TO

  • Mark Text 是一款高性能的 Markdown 编辑器,基于 Electron 构建,运行于 Mac、Windows 和 Linux 平台。具有简洁的外观和流畅的运行。 特性 Mark Text 所输及所见,摒弃了众多 markdown 编辑器左边写作右边预览的写作方式,巧妙的将编辑和预览融为一体。 使用 snabbdom 作为 Mark Text 的渲染引擎,保证了极速渲染编辑页面,带来流

  • Mark Mind 是一个支持在节点内部使用 markdown 语法的思维导图和大纲工具。 Mark Mind 功能支持: MarkDown语法支持: 文字样式设置 Emoji表情与Font awesome字体图标 链接 图片 列表 表格 代码高亮 公式 图表(mermaid,echarts,flowchart,plantuml) 思维导图支持: 外框 概要 联系 标注 标签 图像 链接 支持类似ppt演示功能

  • 问题内容: 在目标C中,我可以使用符号导航器标记代码的各个部分。由于这是C预处理程序命令,因此在Swift中不可用。在Swift中有替代方法吗?还是我必须使用丑陋的注释? 问题答案: 您可以使用 也有讨论认为,无论如何,自由使用类扩展可能是更好的做法。由于扩展可以实现协议,因此您可以例如将所有表视图委托方法放入扩展中,并以比其能力更高的语义级别对代码进行分组。