Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串缓冲区问题_Java_Fileoutputstream_Stringbuffer - Fatal编程技术网

Java 字符串缓冲区问题

Java 字符串缓冲区问题,java,fileoutputstream,stringbuffer,Java,Fileoutputstream,Stringbuffer,我写了一个代码,允许用户在文本区域打开一个文本文件并像文本编辑器一样输入新字符。当编辑一个大文件并输入大量字符时,似乎存在容量问题,文件无法保存。 我试过StringBuffer的东西;但还是不起作用。 我想知道问题是在保存到文件时还是在文本区域内修改时? 我有这样的想法: java.lang.StringBuffer text = new java.lang.StringBuffer(); //some code here File myFile = new File(filen

我写了一个代码,允许用户在文本区域打开一个文本文件并像文本编辑器一样输入新字符。当编辑一个大文件并输入大量字符时,似乎存在容量问题,文件无法保存。 我试过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");
    }
一些指针

  • 您不需要指定
    java.lang.
  • 如果可以使用StringBuilder,请不要使用StringBuffer
  • 最重要的是,不要混合文本和二进制,因为这会导致混淆
如果您想将整个文件作为字符串读取,我建议在Java7中使用

Path path = FileSystems.getDefault().getPath("logs", "access.log");
String text = new String(Files.readAllBytes(path), "UTF-8");
或者使用Apache Commons IO


你能给我们看一下与文件编写相关的代码吗?我不认为这是一个能力问题,而是一个编码问题;但如果您发布相关代码,我们将看到更多信息。在我达到2680个字符后,我无法添加或删除字符。只有当我达到约2680个字符时,才会出现此问题,此后文件将不可编辑,除非删除几个字符。StringBuilder无法解决此问题,因为我正在用jsp编写代码,我将尝试使用apache fileutils。您能否提供一个示例,我们可以重现您的问题,因为提供的代码中没有任何内容演示这一点?String和StringBuffer可以包含20亿个字符。问题不在于读取,而在于字符串的附加和保存。所以它与上面的代码无关,甚至可能是浏览器问题?您尝试过其他浏览器吗?
String text = FileUtils.readFileToString(new File(filename));