Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
JSudoku - SudokuFileManager.java

SudokuFileManager.java

Caricato da:
Scarica il programma completo

  1. package jsudoku;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.DataOutputStream;
  5. import java.io.File;
  6. import java.io.FileInputStream;
  7. import java.io.FileNotFoundException;
  8. import java.io.FileOutputStream;
  9. import java.io.IOException;
  10. import java.io.InputStreamReader;
  11. import jsudoku.exception.InvalidSudokuException;
  12.  
  13. public class SudokuFileManager {
  14.     private File sudokuFile;
  15.  
  16.     public SudokuFileManager(File pSudokuFile) {
  17.         if(!pSudokuFile.getName().endsWith(".sdk")){
  18.             this.sudokuFile= new File(pSudokuFile.getAbsolutePath()+".sdk");
  19.         }else{
  20.             this.sudokuFile = pSudokuFile;
  21.         }
  22.     }
  23.  
  24.     public Sudoku openSudoku() throws FileNotFoundException, IOException, InvalidSudokuException{
  25.         BufferedReader br= new BufferedReader(new InputStreamReader(new FileInputStream(this.sudokuFile)));
  26.         String number=br.readLine();
  27.         char[] numbers=number.toCharArray();
  28.         int[][] sudoku=new int[9][9];
  29.         int cont=0;
  30.         for(int i=0; i<9; i++){
  31.             for(int j=0; j<9; j++){
  32.                 sudoku[i][j]=Integer.parseInt(numbers[cont]+"");
  33.                 cont++;
  34.             }
  35.         }
  36.         return new Sudoku(sudoku);
  37.     }
  38.  
  39.     public void saveSudoku(Sudoku pSudoku) throws IOException{
  40.         if(!this.sudokuFile.exists()){
  41.             this.sudokuFile.createNewFile();
  42.         }
  43.         DataOutputStream dos=new DataOutputStream(new FileOutputStream(this.sudokuFile));
  44.         int[][] sudoku=pSudoku.getSudoku();
  45.         String saveString="";
  46.         for(int i=0; i<9; i++){
  47.             for(int j=0; j<9; j++){
  48.                 saveString+=sudoku[i][j];
  49.             }
  50.         }
  51.         dos.writeBytes(saveString);;
  52.     }
  53.  
  54. }