Java 我可以复印扫描仪吗?
我有一个方法,把扫描仪作为一个参数,我想复制它,这样我就可以使用它两次。可能吗Java 我可以复印扫描仪吗?,java,methods,parameters,Java,Methods,Parameters,我有一个方法,把扫描仪作为一个参数,我想复制它,这样我就可以使用它两次。可能吗 很抱歉,我是这个网站的新手。这是一个全java的网站吗?因为这就是我正在使用的。只要我知道如果您想使用它两次,您必须初始化两个扫描仪,或者在第一次处理它时初始化同一个扫描仪。 因此,这个问题的总体答案是,当您第一次处理流时,再次初始化扫描仪。不清楚您所说的“…因此我可以使用它两次”是什么意思 愚蠢的解释是,您希望对扫描仪对象进行多次调用。显然,您不需要复制扫描仪来执行此操作 下一种解释是,您希望使用Scanners从
很抱歉,我是这个网站的新手。这是一个全java的网站吗?因为这就是我正在使用的。只要我知道如果您想使用它两次,您必须初始化两个扫描仪,或者在第一次处理它时初始化同一个扫描仪。
因此,这个问题的总体答案是,当您第一次处理流时,再次初始化扫描仪。不清楚您所说的“…因此我可以使用它两次”是什么意思 愚蠢的解释是,您希望对
扫描仪
对象进行多次调用。显然,您不需要复制扫描仪来执行此操作
下一种解释是,您希望使用Scanner
s从同一输入流中读取同一令牌流两次。那不行。扫描仪假定它独占使用底层输入流。。。它会消耗流中的字符。因此,如果您有一个带有两个扫描器的输入流,那么其中一个扫描器将获得一些输入字符,而另一个将获得其余字符。(此外,哪台扫描仪获取哪些字符并不容易预测。)
不过,有几种方法可以解决这个问题。比如说-
- 如果数据源是一个文件(应用程序打开的文件),则可以将其打开两次,并为其创建两个独立的
扫描仪
- 您可以将整个流作为字符串或StringBuffer或字符数组读取到内存中,然后创建两个输入流来读取缓冲数据,并为流创建inpendent
Scanner
s
- 您可以使用“tee流”(例如:)或类似方法将输入的副本保存到单独的输出流,然后将写入后者的数据馈送到单独的扫描仪
最终的解释是,您需要两个从同一个流返回令牌的扫描器。如果您想这样做,最好使用一台扫描仪,并将其传递到两个需要它的地方。(如果您试图在同一输入流上使用两个扫描仪,您可能会遇到上述问题。)回答您的第二个问题,它绝不是全java网站。但是要接触到了解java的人,只需在你的帖子上加上“java”和其他适用于你的问题的标签,就可以让了解java的人更容易找到它。