日期:2014-05-20  浏览次数:20688 次

String 问题请教
这里有段老程序,大概如下:

for(.....)
{
      String1   =   ...
      String2   =   ...
      ...
      String150   =   ...
      String   s   =   String   1   +   ....   +   String150;

      BufferedWriter.write(s)//   to   a   file
}

其中for的循环次数会比较多,又在for中定义了很多String类型的变量,之后又将它们连接起来,然后用FileWriter写到一个文件中.  


问题:
我发现文件中的一段都变成了NUL(包括所有的字符,比如回车符号.用notepad++打开看,或用notepad打开,就是空格,回车还能正常换行)请问这可能会是什么问题?   (当然也可能是其他问题,我不知道)  
如果是String   处理的而我难题,那把String该成StringBuffer是否可以?
我现在不能重复这个错误.

------解决方案--------------------
虽然不是String的问题,但你的编程风格还是很成问题,用StringBuffer的append()比用String相加要好得多。

楼主说的问题可能是换行符的问题,JAVA用UNIX风格的换行符,即用一个字符 '\n ',而不是用WINDOWS风格的 '\r\n ',所以用windows的notepad打开,会存在这个问题。
------解决方案--------------------
String s = null;
String s1 = "test ";
System.out.println(s+s1);//nulltest

可能是有s = null;这种吧。

建议还是将String换成StringBuffer吧


------解决方案--------------------
StringBuffer还是比直接用String好
------解决方案--------------------
为什么不用 String str = " "; 而非要用String str = null;