程序:
以上就是我想要实现的目标;但是,该程序无法正常工作。 *请看下面的例子......
class tester
{
public static int x = 0;
public static double[] dataArray = new double[x];//array storing elements
public static void main(String[] args) throws IOException
{
//userInput .txt
Scanner sc = new Scanner(System.in);
System.out.println("Enter filename:\n");
String name = sc.nextLine();
File file = new File(name);
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String newString = stringBuffer.toString();
String [] stringArray = newString.split("\n");
double [] dataArray = new double[stringArray.length];
for(int i=0 ; i < stringArray.length ; i++)
{
dataArray[i] = Double.parseDouble(stringArray[i]);
}
我有一个名为:Ben.txt的文件,如下所示:
1
2
3
4
5
6
7
8
9
10
当我运行程序时......
Enter filename:
c:/Ben.txt
Exception in thread "main" java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at sun.misc.FloatingDecimal.parseDouble(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at tester.main(tester.java:27)
答案 0 :(得分:2)
问题是你实际上没有从文件中读取任何内容。你做了所有的设置,但你没有阅读。
所以当你有:
File file = new File(name);
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String newString = stringBuffer.toString();
在这里,我认为你实际上并不需要一个StringBuffer,所有你需要添加/替换的是这个
String str;
str = bufferedReader.readLine();
如果你想阅读整个文件,你只需要使用readLine()遍历整个文件。
答案 1 :(得分:1)
正如GiantTree所说,你实际上并没有在文件中阅读
将newString的定义更改为以下内容将为您提供一些进展。
String newString = bufferedReader.readLine();
您应该考虑的其他事项: