簡體   English   中英

一次讀取Java中以制表符分隔的文件“一行”

[英]Read tab-delimited file in Java one “line” at a time

我編寫了代碼,以一次一行(行)讀取制表符分隔的文件。 我通過將Excel文件保存為制表符分隔的文本文件從Excel電子表格中創建了他文件。 電子表格中的每一行都有39列,這意味着38個選項卡。 這樣做的目的是能夠將39位數據的每一個(包括空位)包裝到XML標簽中。 但是,此代碼一個。 一次一行地打印電子表格中的每條數據,我在嘗試訪問特定數據項時遇到麻煩,這是必不可少的。 例如,第一列是用戶ID,第十二列是主地址行1,第36列是顧客注釋。 但是,如果將下面的代碼更改為get(55),則會收到IndexOutOfBounds異常。 如果我要求第一條數據get(0),則程序會列出整個文件中的每條數據。

boolean resultFlag = false;
  try
   {   
     theScanner = new Scanner(new FileReader("C:\\WMS\\GGBTS_Patron_Data_20160317_V1-0.txt"));
   while (theScanner.hasNextLine())
   {
    patronRow = theScanner.next();
    itemArray = new ArrayList(Arrays.asList(patronRow.split("\t")));   
    for(int i=0; i<itemArray.size(); i++)
       {
        System.out.println(" -->"+itemArray.get(i));
       }        
   }
   resultFlag = true;
 }

在繼續下一條邏輯行之前,我需要做些什么才能獲得一行的39個元素並能夠通過索引號引用它們? 我不知道Excel是否使用\\ n \\ r之類的文件保存制表符分隔的文件。 請幫助。 我在這里受到了一些阻礙,因為盡管我已經是一名程序員多年,但是在目前的情況下,我還是一個小型圖書館的學術參考圖書館員,無法獲得IT支持。 無論如何,我知道編程要比我們兩個處理操作而不是編碼的IT人員要好。 謝謝。

這行:

patronRow = theScanner.next();

應該:

patronRow = theScanner.nextLine();

您想得到整行然后在\\t上分割...

暫無
暫無

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

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