2015-12-20 49 views
0

所以我有我的代碼工作,它不漂亮,但它的工作:)Java - 當文件中的數據超出限制時打印消息?

現在我想寫一段代碼,停止打印的數據,如果有19個或更多的數據在文本文件中,然後顯示一條消息,例如「輸入無效」。

任何幫助,將不勝感激。

package stackandqueue; 

import java.util.*; 
import java.util.Stack; 
import java.util.Queue; 
import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.LinkedList; 
import java.util.StringTokenizer; 
import java.util.Arrays; 

public class StackAndQueue { 

public static void main(String[] args) throws IOException { 
    // Create three empty stacks of Bays. 
    // Bay 1 linked list 
    Queue<String> bayoneStack = new LinkedList<String>(); 
    // Bay 2 linkd list. 
    Queue<String> baytwoStack = new LinkedList<String>(); 
    // Bay 3 linked list 
    Queue<String> baythreeStack = new LinkedList<String>(); 

    Queue<String> bayloadStack = new LinkedList<String>(); 

    System.out.println("***********************************************"); 

    // Open and read text file 
    String inputFileName = "PodData4.txt"; 
    FileReader fileReader = new FileReader("PodData4.txt"); 

    // Create the FileReader object 
    try (BufferedReader br = new BufferedReader(fileReader);) { 
     // Sort the data into the relevant linked list by type F, T or P. 
     String[] strings = br.readLine().split(","); 
     for (String str : strings) { 
      switch (str.charAt(0)) { 
      case 'F': 
       bayoneStack.add(str); 
       break; 
      case 'T': 
       baytwoStack.add(str); 
       break; 
      case 'P': 
       baythreeStack.add(str); 
       break; 
      default: 
       // In-case of invalid input 

      } 

      System.out.println(str); 

     } 
    } catch (IOException ex) { 
     // handle exception; 
    } finally { 
     fileReader.close(); 
    } 
    // Prints out the linked list stacks showing all Bays. 
    System.out.println("***********************************************"); 

    System.out.println("Bay 1:Food: " + bayoneStack.toString()); 
    System.out.println("Bay 2:Technical: " + baytwoStack.toString()); 
    System.out.println("Bay 3:Personal: " + baythreeStack.toString()); 

    } 
    } 
+1

「數據塊」是什麼意思? –

+0

那麼我有一個文本文件,其中包含的數據看起來像這樣,T13,D42,D11,P52,T67,T21等等。每一個數據都是一位數據,將被分類到相應的隊列中,但我想要顯示一條消息,說明由於數據太多而導致輸入無效。另外,如果它可以說有無效的輸入,當有一個空的文本文件,這將是偉大的! – DParker

+0

由於您發現了IOException,因此您可以在其中顯示錯誤以及在開關情況下的默認情況......您還可以通過.size()方法檢查隊列的大小,如果它大於19,則可以顯示您的消息 –

回答

1

考慮到你的String陣列包含在文件中的數據,你可以簡單地使用這個數組的長度,以確定它是否超出了限制。例如:

String[] strings = br.readLine().split(","); 
if(strings.length >= 19) // Check whether there is more data then you expected 
{ 
    System.out.println("Invalid input"); 
    return; //Return from the main function, stop the program 
} 
+0

嗨,謝謝你。所以我已經這樣做了,但是我試圖添加它,所以它不會接受零數據的文件,但我似乎已經進入雷區,儘管它應該很簡單。 – DParker