簡體   English   中英

如何使用BufferedReader在.txt文件中向上移動行?

[英]How to move up lines in a .txt file with BufferedReader?

為我注冊的CS課程制作一個“匯編程序”程序。它具有ADD,SET,INC(增量)和JIG之類的功能。 現在,我們輸入具有以下布局的.txt文件(例如):

請注意:A和B只是整數,它們存儲整個程序中的值,並在到達文本文件末尾時打印出該值。

INC A    (increments A by 1)
SET B 5   (set's B's value to 5)
INC B
ADD A 3  (add's 3 to A's current value)
JIG B -4 (move's backward 4 lines, so back to INC A)

所以我很困惑如何將BufferedReader移回4行? BufferedReader中是否有一種方法可以讓您將其移動到某個索引/位置? 否則,我還能怎么做?

最簡單的方法是將行存儲在數組或列表中。

List<String> lines = Files.readAllLines(Paths.get("myfile.txt"));

這將允許您隨機前進到任何行。

要獲取任何行,您可以使用lines.get(n)例如,您可以執行

int pointer = 0;
for(boolean running = true; running && pointer < lines.size(); ) {
   String line = lines.get(pointer);
   String[] parts = line.split(" +");
   switch(part[0]) {
      case "JMP":
          pointer += Integer.parseInt(parts[1]); // jump back or forth.
          continue;
      case "HALT":
          running = false;
          break;
      // other instructions
   }
   pointer++;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM