我必须从第一个String
为N的文件中读取字符串然后将其转换为Integer
一个周期for
从0到N,每次读取另一个来自文件的字符串,然后将每行读取为float
,如下所示:
FILE Name: test.txt
,内容如下:
4
1.21
1.31
1.21
1.32
Java Code
public class lpa2 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated constructor stub
String line;int n;
while((line = nextLine())!=null){
n = Integer.parseInt(line);
float v[] = new float[n];
for(int i = 0;i<n;i++){
String temp = readln();
v[i] = Float.parseFloat(temp);
}
for(float f:v)
System.out.println(f);
}
}
public static String readln() throws IOException{
BufferedReader bi = new BufferedReader(new InputStreamReader(System.in));
return bi.readLine();
}
}
当我使用这样的命令行时:
javac -nowarn lpa2.java
然后
java lpa2 < test.txt
使用文件作为输入我得到以下错误
java.lang.NumberFormatException: For input string: "{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at lpa2.main(lpa2.java:15)
如果我尝试使用eclipse做到这一点,那就完美了......
我该如何解决这个问题?我使用readln(),我创建而不是扫描仪,因为我需要一个更快的输入阅读器,即使我尝试使用扫描仪我得到相同的错误...有什么办法可以解决这个问题吗?
谢谢...
答案 0 :(得分:1)
你的文件“test.txt”被保存为rtf文件 - 我猜你是从Word或类似的文字处理器中保存的?如果您在文本编辑器(例如记事本)中打开文件,您会发现它不包含您所期望的内容。