Обработка исключительных ситуаций, работа с файлами Исключительные ситуации Классы File, InputStream, RandomAccessFile, FileReader, BufferedReader, BufferedWriter, FileWriter, InputStreamReader, InputStreamWriter
try, catch throw new Exception(); try { … } catch( Exception e) { … } public void f() throws Exception { … }
Создание своих исключений class SimpleException extends Exception { }
Работа с файловой системой. Класс File Это скорее путь к файлу Соответствует файлу или папке: new File("test.txt") new File(".") Методы File.separator - \ или / String[] list() - список файлов папки boolean isDirectory() String getPath() String getAbsolutePath() File getAbsoluteFile() String getCanonicalPath() File getCanonicalFile() boolean exists() boolean createNewFile() boolean delete() boolean renameTo(File f) long length()
Работа с двоичными файлами Чтение из файла. Класс InputStream File file = new File("file.tst"); InputStream str = new FileInputStream(file); long length = file.length(); byte[] bytes = new byte[(int)length]; int readed = str.read(bytes,0,length); str.close(); Запись в файл. Класс RandomAccessFile try { File f = new File("file.tst"); RandomAccessFile raf = new RandomAccessFile(f,"rw"); raf.seek(f.length()); raf.writeChars("The End"); raf.close(); } catch IOException e) { System.out.println("Ошибка при чтении или записи файла"); }
Работа с файлами Чтение из текстового файла try { BufferedReader in = new BufferedReader(new FileReader("file.txt")); String str; while( (str=in.readLine()) != null) { // } in.close(); } catch(IOException e) { System.out.println("Ошибка при чтении"); } Запись (дополнение) в текстовый файл try { BufferedWriter out = new BufferedWriter(new FileWriter("file.txt",true)); out.write("Its a new line"); in.close(); } catch(IOException e) { System.out.println("Ошибка при записи"); }
Указание кодировки Чтение из текстового файла try { BufferedReader in = new BufferedReader( new InputStreamReader(new FileInputStream("file.txt"),"windows-1251")); String str; while( (str=in.readLine()) != null) { // } in.close(); } catch(IOException e) { System.out.println("Ошибка при чтении"); } Запись в текстовый файл try { BufferedWriter out = new BufferedWriter( new OutputStreamWriter(new FileOutputStream("file.txt"),"windows-1251")); out.write("Мы дописали этот текст"); out.close(); } catch(IOException e) { System.out.println("Ошибка при записи"); }