2016-03-02 41 views
-1

每次我用read.nextDouble()我得到这个错误我无法读取我的文件中的任何双重价值 - Java的

java.util.InputMismatchException 
null(in java.util.Scanner) 

read.nextInt()read.nextLine()工作,因为他们应该。

import java.util.*; 
import java.io.*; 
public class zad1 
{ 

    public static void main() throws java.io.IOException { 
     Scanner in = new Scanner (System.in); 

     BufferedWriter file = new BufferedWriter(new FileWriter("array.txt")); 

     System.out.println("Rows: "); 
     int n = in.nextInt(); 

     System.out.println("Columns: "); 
     int m = in.nextInt(); 

     double maketab[][] = new double [n][m]; 

     file.write("Array"); 
     file.newLine(); 
     file.write(""+n); 
     file.newLine(); 
     file.write(""+m); 
     file.newLine(); 
     double test = 2.2; 
     file.write("" + test); 
     file.newLine(); 
     for (int i=0; i<maketab.length; i++){ 
      for (int j=0; j<maketab[i].length; j++){ 
       maketab[i][j] = Math.random(); 
       file.write(maketab[i][j] + " "); 
      } 
      file.newLine(); 
     } 

     file.close(); 

     System.out.println("Array saved."); 

     Scanner read = new Scanner(new File("array.txt")); 

     String name = (String) read.nextLine(); 
     System.out.println(nazwa); 
     int w = read.nextInt(); 
     System.out.println(w); 
     int k = read.nextInt(); 
     System.out.println(k); 
     double test2 = read.nextDouble(); 

     double readtab[][] = new double[w][k]; 

     for (int i=0; i<readtab.length; i++){ 
      for (int j=0; j<readtab[i].length; j++){ 

       readtab[i][j] = read.nextDouble(); 
       System.out.print(readtab[i][j] + " "); 

      } 
     } 
     System.out.println(); 

    } 
} 

输入文件:

Array 
5  
5  
2.2  
0.9896001498457462 0.8934082951950629 0.457266460962939 0.002017129343240387 0.09653982445590603 0.393372683202170 0.7879437169250111 0.9985283138531686 0.285846773461949 0.9632833678080835 0.9027385338550603 0.0769347514333748 0.7005729026442885 0.38050407149893606 0.5782312365971878 0.2771563194298766 0.7932386981927726 0.7715461175169079 0.6689758153322996 0.39781450489844683 0.6495504440288017 0.5057655306472166 0.4976466087836059 0.9248534836699963 0.45108773183653694 
+0

秀请输入文件 –

+0

您输入的输入是什么得到错误? – ryadavilli

+0

这可能是一个编码问题 – Fabich

回答

1

我全部剥离其他黏糊糊你的程序和那么多的作品罚款:

import java.util.*; 
import java.io.*; 

public class zad1 { 

    public static void main (String[] args) throws java.io.IOException { 
     Scanner read = new Scanner(new File("array.txt")); 

     String name = (String) read.nextLine(); 
     System.out.println(name); 
     int w = read.nextInt(); 
     System.out.println(w); 
     int k = read.nextInt(); 
     System.out.println(k); 

     double readtab[][] = new double[w][k]; 

     for (int i = 0; i < w; ++i) {    // note change here 
      for (int j = 0; j < k; ++j) {   // and here 
       readtab[i][j] = read.nextDouble(); 
       System.out.print(readtab[i][j] + " "); 
      } 
     } 
     System.out.println(); 
    } 
} 

输入:

Array 
5 5 
2.2 0.9896001498457462 0.8934082951950629 0.457266460962939 0.002017129343240387 0.09653982445590603 0.3933726832021702 0.7879437169250111 0.9985283138531686 0.285846773461949 0.9632833678080835 0.9027385338550603 0.0769347514333748 0.7005729026442885 0.38050407149893606 0.5782312365971878 0.2771563194298766 0.7932386981927726 0.7715461175169079 0.6689758153322996 0.39781450489844683 0.6495504440288017 0.5057655306472166 0.4976466087836059 0.9248534836699963 0.45108773183653694 
+0

同样的错误。也许这不是代码错误?我在OS X上使用BlueJ ... – Martin

+1

只需稍作更改,public static void main(String [] args)',您的原始程序也适用于我。我只是在OS X的命令行中使用javac/java。我倾向于同意你的怀疑...... –