2012-12-03 32 views
-1

我編寫了一個代碼,使用戶能夠在文本區域打開文本文件,並像文本編輯器一樣輸入新字符。編輯大文件並輸入大量charcater時,似乎存在容量問題該文件不會被保存。 我已經嘗試了StringBuffer stuff.ensureCapacity(10000);但仍然沒有工作。 我不知道問題是保存到文件時還是在我的文本區域內進行修改時? 我有類似的東西:Stringbuffer問題

java.lang.StringBuffer text = new java.lang.StringBuffer(); 
    //some code here 

    File myFile = new File(filename); 
    DataInputStream dis = new DataInputStream(new FileInputStream (myFile)); 

    while((data = dis.readLine()) != null) 
    { 
     text.append(data+"\n"); 
    } 
+1

你能告訴我們代碼的文件的相關寫作? – kosa

+2

我不認爲這是一個capcity問題,它更多是一個編碼問題;但是如果您發佈相關代碼,我們會看到更多。 – AlexWien

+0

當我到達2680個字符後,我無法添加或刪除字符。 – user1712095

回答

0

一些指針。

  • 你並不需要指定java.lang.
  • 不要使用StringBuffer的,如果你可以使用StringBuilder
  • 最重要的是,不要混用文本和二進制,因爲它會導致混亂。

如果你想閱讀整個文件作爲一個字符串我建議使用在Java 7中

Path path = FileSystems.getDefault().getPath("logs", "access.log"); 
String text = new String(Files.readAllBytes(path), "UTF-8"); 

或與Apache下議院IO FileUtils

String text = FileUtils.readFileToString(new File(filename)); 
+0

只有當我達到大約2680個字符時,纔會發生此問題,此後文件不可編輯,除非刪除少量字符。 StringBuilder無法解決這個問題,因爲我在jsp中編碼,我會嘗試Apache的fileutils。 – user1712095

+0

你能提供一個例子,我們可以重現你的問題,因爲沒有提供的代碼證明了這一點? String和StringBuffer可以包含20億個字符 –

+1

user1712095