2013-05-16 77 views
-2

此代碼可以讀取許多文件並將其顯示在textarea中。讀取文件後,如何從這樣的位置讀取行(java)

例如:

...........> 12 16 17 18

...........> 15 17 AB CD

............> bc上的廣告2g

我想要讀取文件,但僅在字符位置= 12之後。 這是我正在使用的代碼。

FileReader fileReader = null; 
    BufferedReader bufferedReader = null; 
    try { 
    File folder = new File("D:/bcc/"); 
    if (folder.isDirectory()) { 
    for (File file : folder.listFiles()) { 
    fileReader = new FileReader(file); 
    bufferedReader = new BufferedReader(fileReader); 
    String line = null; 
    int lineCount = 0; 
    while (null != (line = bufferedReader.readLine())) { 
    lineCount++; 

    if (1000 != lineCount) { 

    jTextArea1.append(line +"\n"); 
    } 
    } 
    } 
    } 


    } 
    catch (FileNotFoundException e) { 
    e.printStackTrace(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } finally { 
    if (null != bufferedReader) 
    try { 
    bufferedReader.close(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } 
    } 
+0

目前尚不清楚你(我)想要達到的目標。跳過「12」? – gkalpak

+0

我的意思是說,我想讀取12號碼的行。 –

+0

是否所有的文件都包含一個12號碼?字符編號12之前是否有任何內容? – gkalpak

回答

0

爲了從每條線跳過前12個字符,可以使用字符串的substring(int)方法。

替換:

jTextArea1.append(line + "\n"); 

與:

jTextArea1.append(((line.length() > 12) ? line.substring(12) : line) +"\n"); 

EDIT
線與長度< 12被打印出,正是因爲他們出現。

+0

bah問題:java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍:-12 –

+0

我仍然不確定,這說明你的真正問題。如果您給我們一些輸入線和所需輸出線的例子,它可能會有所幫助。 – gkalpak

+0

輸入:L010 --->(186251084)10 09 3B 44 16 L010 <---(186251096)10 7B 85 03 03 16 輸出:10 09 3B 44 16 10 7B 85 03 03 16 –

0

使用substring方法在Java

例如

String sCurrentLine = "Your String"; 
sCUrrentLine = sCurrenline.subString(sCurrentline.indexOf("firstCharcter")+12);