我正在尝试编写一个程序,要求我从文件中读取文本。在进行研究时,我发现这个代码完全符合我的要求:
String string="";
try{
InputStream ips = new FileInputStream("WORDS.txt");
InputStreamReader ipsr = new InputStreamReader(ips);
BufferedReader br = new BufferedReader(ipsr);
String line;
while ((line=br.readLine())!=null){
System.out.println(line);
string+=line+"\n";
}
br.close();
}
catch (Exception e){
System.out.println(e.toString());
}
有人可以解释一下这段代码是如何工作的吗?我是编程新手,我对大部分代码都不熟悉。这不是作业 - 这是我为自己的个人利益而写的一个程序。谢谢。
答案 0 :(得分:5)
在你理解了程序的功能之后(重要的是,这些是任何Java程序员的基本概念,希望有人会填写),我将采取以下措施来改进它:
根本没有此代码。将文件读入字符串的问题已经解决了。使用Commons IO。
不要在循环中使用字符串连接。使用StringBuilder。使用您对所需容量(例如文件大小)的最佳猜测来初始化StringBuilder。
创建Reader时指定显式字符集。否则,您的程序将无法在不同的计算机上移植。
不要先删除换行符然后重新添加它们,除非这确实是你想要的。这可能会更改正在读取的数据(如果原始文件使用不同的换行符方案)。
不要捕获异常并打印它。让它将调用堆栈传播到一段可以处理它的代码。
不要将结果String初始化为空。如果代码完成,String将保存您的数据,否则,您需要null或异常。空字符串只会使查找错误变得更加困难。最好不要初始化String,甚至不要为null。然后你会在这里得到一个很好的编译错误,要求你明确指出在异常的情况下String应该是什么。
将从文件中读取的代码放在自己的方法中。让它返回一个字符串。您以后使用该String执行的操作与此方法无关。
答案 1 :(得分:1)