Java 有返回上一行的命令吗?
如果有人知道的话,如果你能告诉我那就太好了。
If anyone knew, that'd be great if you could tell me.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如果有人知道的话,如果你能告诉我那就太好了。
If anyone knew, that'd be great if you could tell me.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
我想也许是:
I think it maybe:
您的意思可能是类似于 goto 之类的东西,它使您能够转到上一个类似的代码。如果这就是你的意思,那么答案是否定的,这在 Java 中是不可能的,你将不得不以另一种方式解决这个问题。
如果您可以提供更多信息或代码,也许您会得到一些关于如何解决这个问题的想法。
You mean probably something like goto which enables you to go to a previous like of code. If thats what you mean then the answer is no its not possible in Java, you will have to solve this in another way.
If you can give some more information or code maybe you will get some ideas on how to solve this.
如果您指的是从文件中读取,并且您使用的是
java.io.Reader
,而不是java.util.Scanner
来进行读取,您可以尝试使用阅读器mark()
方法(如果受支持)(如果您正在处理文件而不是像 ie 网络这样的流媒体通道,则应该如此)。然后,在您mark()
位置之后(读取上一行时),如果您想在读取新行后返回到该行,只需调用阅读器的reset()方法。
更多信息请参见此处。
编辑:如果您的行不是那么大,您可以“缓存”它们,将前一行存储在内存中。也就是说,如果它没有超过您计划应用程序将使用的内存量。此外,这可能还存在另一个性能问题:为很多行分配和取消分配内存可能会导致垃圾收集器更频繁地跳转,从而导致性能下降,并且如果您使用的垃圾收集器不这样做的话进行内存压缩,你可能会在那里得到一些内存碎片(我认为 Java VM 1.4 或 1.5+ 不是这种情况,但对于一些较小的 VM,比如 Android 的 Dalvik,可能会出现这种情况 - 还没有检查它的 GC 是否可以进行内存压缩)。
If you are referring to reading from files AND you are using
java.io.Reader
, notjava.util.Scanner
to do your reading, you can try to use the reader'smark()
method if it's supported (should be if you area working with files and not streaming channels like i.e. network). Then, after youmark()
the position (when reading the previous line), if you want to go back to that line after reading a new one just call the reader'sreset()
method.More information here.
Edit: If your lines are not that big, you can just "cache" them, storing the previous line in memory. That is, again, if it's not over the amount of memory you plan your application will be using. Also, there might be another performance issue with this: allocating and de-allocating memory for a lot of lines may cause the garbage collector to jump in more often, thus causing performance to decrease and, if the garbage collector you are using doesn't do memory compacting, you might get some memory fragmentation there (not the case with Java VM 1.4 or 1.5+ I think, but it might be the case for some smaller VMs like Android's Dalvik - haven't checked if its GC might do memory compaction).
我不知道这个项目的当前状态,但我鼓励您查看类似 JCurses 的内容( http: //sourceforge.net/projects/javacurses/ )或 JChassis ( http://freshmeat.net/项目/jc_ansiterm/)。
I don't know the current status of this project, but I would encourage you to look at something like JCurses ( http://sourceforge.net/projects/javacurses/ ) or JChassis ( http://freshmeat.net/projects/jc_ansiterm/ ).