我无法理解为什么我的程序无法正常运行。它编译但没有打印。我的文件中有一个5个字符的单词。我需要从该文件中读取行,然后将其拆分为char数组,然后我要打印出来。谢谢!
import java.io.FileReader;
import java.io.IOException;
import java.io.BufferedReader;
public class test {
public static void main(String[] args)
{
BufferedReader line = null;
char[] array = new char[7];
try{
line = new BufferedReader(new FileReader(args[0]));
String currentLine;
while((currentLine = line.readLine()) != null)
{
array = currentLine.toCharArray();
}
for(int i = 0; i < array.length; i++)
{
System.out.print(array[i]);
}
}//try
catch(IOException exception)
{
System.err.println(exception);
}//catch
finally
{
try
{
if(line != null)
line.close();
}//try
catch(IOException exception)
{
System.err.println("error!" + exception);
}//catch
}//finally
} // main
} // test
答案 0 :(得分:3)
你的while循环会跳过除最后一行之外的所有行,因此你的最后一行可能是空的。要显示您可能拥有的每一行:
while ((currentLine = line.readLine()) != null) {
array = currentLine.toCharArray();
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]);
}
System.out.println();
}
或者如果你只有1行,你可以简单地使用:
String currentLine = line.readLine();
...
答案 1 :(得分:0)
您的程序仅打印最后一行
你必须循环打印。
while (....!=null)
{
array = currentLine.toCharArray();
for(int i = 0; i < array.length; i++)
{
System.out.print(array[i]);
}
}
如果上述问题不是检查您的文件权限。
检查您的系统可能是程序因文件许可而无法读取文件。