Я помню, что когда я впервые начал изучать Java, я не понимал потоковой передачи Java IO, поэтому я написал это эссе и надеялась, что это будет полезно для тех, кто только что начал изучать Java и облегчить их запрос в будущем. Потоки Java IO делятся на потоки символов (читатель, писатель) и байтовые потоки (InputStream, OutputStream). Потоки байтов, как следует из названия, байтовые потоки должны прочитать содержимое файлов в байтовые массивы, а затем вывести их в другой файл. Самая маленькая единица операций потоковой передачи символов - это символы. Давайте посмотрим на обзор потоков IO:
Ниже приведено первое, что прочитало и записывает файл через поток символов:
Пакет lib; import java.io.bufferedReader; import java.io.file; import java.io.filenotfoundexception; import java.io.filereader; импорт java.io.fileWriter; импорт java.io.ioexcept File ("f: //test.txt"); // Метод написания потока символов public String writeinfile () Throws ioException {string str = ""; Строки count = ""; try {// Использовать поток символов для чтения файла BufferedReader bf = new BufferedReader (New FileReader (f)); while (true) {// прочитать каждую строку данных и присваивайте его str if ((count = bf.readline ())! = null) {str += count; } else {break; }} // Закройте поток bf.close (); } catch (filenotFoundException e) {e.printstackTrace (); } return str; } // Метод для чтения потока символов public void getReader () {try {// где истинность означает добавление в конце исходного содержимого файла. Если не написано, это означает опустошить файл и добавить контент. Printwriter pw = new PrintWriter (новый файл -авторат (f, true)); pw.write ("Тестовая входная строка в файл 2"); pw.close (); } catch (ioException e) {e.printstackTrace (); }} public static void main (string [] args) бросает ioException {test test = new Test (); // Введите строку в файл test.getReader (); // Читать соответствующую строку строки str = test.writeinfile (); // open System.out.println ("Содержание файла:"+str); }}Есть комментарии в ключевых моментах приведенного выше кода, поэтому я не буду подробностей один за другим. Главное, что вы не забудьте закрыть после использования потока.
Затем работайте в файле через поток байта, копируя содержимое одного файла в другой:
пакет com.file.test2; import java.io.file; import java.io.fileinputStream; импорт java.io.filenotfoundexception; import java.io.fileOutputStream; импорт java.io.ioexcept IoException {// исходный файл для копирования f = new File ("d: //test.txt"); // Файл целевого файла f2 = новый файл ("d: //test2.txt"); // Определить массив типа байта для хранения байта для чтения [] b = новый байт [1024]; int длина; try {// определить чтение потока FileInputStream in = new FileInputStream (f); // Определить выходной выход для файла fileOutputStream OUT = new FileOutputStream (F2); // выводить содержимое файла в другой файл while ((length = in.read (b))! =-1) {out.write (b, 0, длина); } out.close (); in.close (); } catch (filenotFoundException e) {e.printstackTrace (); }}}В работе байтового потока должен существовать исходный файл в строке 13. Вы можете изменить путь файла самостоятельно по мере необходимости. Вам нужно только существовать. В противном случае, ошибка, что файл не может быть найден, будет сообщена. В то же время, если вы хотите вывести содержимое потока чтения байтового на консоли, вы можете добавить два кода между строками 27 и 28: in.read (b, 0, b.length); System.out.println (новая строка (b));
Вышеуказанные являются связанные операции потоков символов и байтовых потоков. На самом деле, код не сложно, в основном речь идет о собственном понимании. У каждого будут разные способы понимания одних и тех же проблем. Конечно, для нас, программистов, помимо большего мышления, нам также нужно сделать больше. Наконец, я надеюсь, что вышеупомянутый контент будет полезен для всех, и, пожалуйста, продолжайте поддерживать этот сайт.