2015-06-26 3 views
0

По какой-то причине я продолжаю получать следующую ошибку при компиляции моего кода. У меня есть правильные директивы препроцессора (операторы импорта), и никаких синтаксических ошибок, но всякий раз, когда я компилирую мой код, который я далНе созданный файл (Java)

+0

В вашем txt-файле нет int. –

+0

Вы достигли конца своего файла, это похоже. – sstan

ответ

0

вероятно, ваш dateFile пуст, который может быть причиной для этого исключения

public int nextInt() 

Осмотры следующий токен ввода как int. Вызов этого метода формы nextInt()

Возвращает: прерывания INT сканированных от входа

Выдает: InputMismatchException - если следующий маркер не соответствует регулярному выражению Целого числа, или вне диапазона

NoSuchElementException - если вход будет исчерпан

нелегалы tateException - если этот сканер закрыт

см http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#Scanner(java.io.File)

0
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.UnsupportedEncodingException; 
import java.util.Scanner; 
import javax.swing.JOptionPane; 

public class Reader 
{ 
    public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException, IOException 
    { 

    File dateFile = new File("test.txt"); 
    FileWriter fw = new FileWriter(dateFile); 
    BufferedWriter bw = new BufferedWriter(fw); 
    Scanner reader = new Scanner(dateFile); 

    try 
    { 
     // if file doesnt exists, then create it 
     if (!dateFile.exists()) 
     { 
     dateFile.createNewFile(); 
     bw.write("1"); 
     bw.close(); 
     System.out.println("Done"); 
     }else 
     { 
     int duration; 
     String ans = JOptionPane.showInputDialog ("Enter the amount of problems per training session (with number in minutes):"); 

     while(!ans.matches("[0-9]+")) 
     { 
      ans = JOptionPane.showInputDialog ("Please re-enter the amount of problems per training session (with number in minutes):"); 
     } 

     duration = Integer.parseInt(ans); 
     System.out.println(duration); 
     bw.write(""+duration); 
     bw.flush(); 

     int numSessions = reader.nextInt(); 
     System.out.println("Number of sessions is: " + numSessions); 
     String fileName = ("sessionNumber"+numSessions); 
     File newSession = new File(""+fileName+".txt"); 
     System.out.println(fileName); 

     if (!newSession.exists()) 
     { 
      newSession.createNewFile(); 
      System.out.println("IT DOES NOT EXIST!"); 
     } 

     fw = new FileWriter(newSession.getAbsoluteFile()); 
     bw = new BufferedWriter(fw); 

     bw.write(duration); 
     bw.close(); 
     } 
    } catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
    } 
} 

Теперь он должен работать. добавить эти две строки:

bw.write(""+duration); 
bw.flush(); 

вы никогда не писать в файл. Помните .flush() ваш буфер .. если вы хотите, чтобы он записывался в файл, прежде чем закрыть его! Обратите внимание, что я изменил путь к файлу, чтобы он работал на моем компьютере, поэтому измените его снова