Ознакомьтесь с нижеприведенными комментариями.InputMismatchException для 2D-массива
я использовал ...
Scanner input = new Scanner("rates.txt");
должны использовать ...
Scanner input = new Scanner(new File("rates.txt"));
Ознакомьтесь с нижеприведенными комментариями.InputMismatchException для 2D-массива
я использовал ...
Scanner input = new Scanner("rates.txt");
должны использовать ...
Scanner input = new Scanner(new File("rates.txt"));
Изменить это, как показано ниже: В коде
Scanner input = new Scanner("rates.txt");
должно быть:
Scanner input = new Scanner(new File("rates.txt"));
Хранить его внутри try-catch или добавить throws Исключение в основном методе.
Также укажите полный путь к файлу, если он не нашел файл.
Используйте сканер вместо сканера.
BufferedReader br = new BufferedReader(new FileReader("rates.txt"));
String line;
while ((line = br.readLine()) != null) {
// parse line here . . .
}
Когда вы передаете String в конструктор Scanner, вы говорите ему, что вход будет получен из самой строки. Вы должны использовать объект File или что-то подобное. Это:
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
public class TestFile
{
public static void main(String[] args)
{
Scanner input = null;
try
{
input = new Scanner(new File("rates.txt"));
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
int numRows = 7;
int numColumns = 7;
Double[][] ratesArray = new Double[numRows][numColumns];
while(input.hasNext())
{
for(int i = 0; i < ratesArray.length; i++)
{
for(int j = 0; j < ratesArray[i].length; j++)
{
ratesArray[i][j] = input.nextDouble();
System.out.print(ratesArray[i][j] + "\t");
} // for j
System.out.print("\n");
} // for i
} // while
input.close();
} // main()
} // class TestFile
Я думал, что это перепишет мой текущий файл, поэтому я никогда этого не делал ... и теперь он работает нормально. Благодарю. – user3331286