Рубрики
Без рубрики

Пример файловой машины Java

Пример пишущей машинки Java, добавление пишущей машинки Java, класс пишущей машинки в java, Пример записи пишущей машинки Java, массив символов для записи пишущей машинки, Строка, Пишущая машинка против строки вывода файла, Конструкторы пишущей машинки Java, Пример кода методов.

Автор оригинала: Pankaj Kumar.

Файловая машина Java

  • Класс пишущей машинки Java является частью java.io посылка.
  • Файловая машина является подклассом java.io.OutputStreamWriter класса.
  • Файловая машинка предназначена для записи потоков символов.
  • Файловая машинка используется для записи в символьные файлы. Его методы write() позволяют записывать символы или строки в файл.
  • Записи файлов обычно оборачиваются объектами записи более высокого уровня, такими как BufferedWriter или PrintWriter , которые обеспечивают более высокую производительность и более гибкие методы записи данных более высокого уровня.

Конструкторы пишущих машин

  1. Файловая машина(файловый файл) : Создает файловую машину объект, используя указанный Файл объект. Он создает исключение IOException , если файл существует, но является каталогом, а не обычным файлом, или не существует, но не может быть создан, или не может быть открыт по какой-либо другой причине.
  2. Файловая машина(файловый файл, логическое добавление) : Создает файловую машину объект, используя указанный Файл объект. Если второй аргумент верен, то байты будут записываться в конец файла, а не в начало. Он создает исключение IOException , если файл существует, но является каталогом, а не обычным файлом, или не существует, но не может быть создан, или не может быть открыт по какой-либо другой причине.
  3. Пишущая машинка(FileDescriptor fd) : Создает объект пишущей машинки, связанный с указанным файловым дескриптором.
  4. Пишущая машинка(строковое имя файла) : Создает объект пишущей машинки, используя указанное имя файла. Он создает исключение IOException , если именованный файл существует, но является каталогом, а не обычным файлом, или не существует, но не может быть создан, или не может быть открыт по какой-либо другой причине.
  5. Пишущая машинка(строковое имя файла, логическое добавление) : Создает объект пишущей машинки, используя указанное имя файла с логическим значением, указывающим, следует ли добавлять записанные данные. Если второй аргумент верен, то данные будут записаны в конец файла, а не в начало. Он создает исключение IOException, если именованный файл существует, но является каталогом, а не обычным файлом, или не существует, но не может быть создан, или не может быть открыт по какой-либо другой причине.

Пример файловой машины Java

Файловая машина наследует метод java.io.OutputStreamWriter и java.io.Writer классов.

Давайте рассмотрим приведенные ниже методы с примерами.

запись(int c)

Этот метод записывает один символ, указанный в int c .

package com.journaldev.io.filewriter;

import java.io.FileWriter;
import java.io.IOException;

/**
 * Java write file using FileWriter write method
 * 
 * @author pankaj
 *
 */
public class FileWriterWriteIntExample {

	public static void main(String[] args) {
		FileWriter fileWriter = null;
		try {
			fileWriter = new FileWriter("D:/data/file.txt");
			//inherited method from java.io.OutputStreamWriter 
			fileWriter.write(65);
			fileWriter.write(66);
			fileWriter.write(67);
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if (fileWriter != null) {
					fileWriter.flush();
					fileWriter.close();					
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

Пишущая машинка реализует автоклавируемый интерфейс, поэтому мы можем использовать попробовать с ресурсами при использовании класса пишущей машинки.

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file using FileWriter write method using try with resource
 * 
 * @author pankaj
 *
 */
public class FileWriterWriteIntTryWithResource {

	public static void main(String[] args) {
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.OutputStreamWriter 
			fileWriter.write(65);
			fileWriter.write(66);
			fileWriter.write(67);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Примечание : В приведенной выше программе FileWriter.write(65) запишет A в файл, потому что 65 является десятичным значением для символа A, следовательно, целое число 65 будет преобразовано в символ A и то же самое для другого.

запись(Строка str, int off, int len)

Этот метод записывает часть строки str из int off в int len .

  • str: Строка для записи
  • выкл.: Смещение, с которого следует начинать чтение символов
  • len: Количество символов, которые необходимо записать

Если значение параметра len отрицательное, то символы не записываются.

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file using FileWriter write(String  s,  int  off,  int  len) method
 * 
 * @author pankaj
 *
 */
public class FileWriterWriteStringExample {

	public static void main(String[] args) {
		String data = "This is FileWriter Example.";
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.OutputStreamWriter 
			fileWriter.write(data, 8, 10);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

запись(char[] cbuf, int off, int len)

Этот метод записывает часть массива символов, указанных в char[] cbuf , из int off в int len .

  • cbuf: Массив символов
  • выкл.: Смещение, с которого следует начинать чтение символов
  • лен: Количество символов для записи
package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file using FileWriter write(char[] cbuf,  int  off,  int  len) method
 * 
 * @author pankaj
 *
 */
public class FileWriterWriteCharArray {

	public static void main(String[] args) {
		char[] data = "This is FileWriter Example.".toCharArray();
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.OutputStreamWriter 
			fileWriter.write(data, 8, 10);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

написать(char[] cbuf)

Этот метод записывает массив символов, указанный cbuf.

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file using FileWriter write(char[] cbuf) method
 * 
 * @author pankaj
 *
 */
public class FileWriterWriteCharArrayExample {

	public static void main(String[] args) {
		char[] data = "This is FileWriter Example.".toCharArray();
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.Writer 
			fileWriter.write(data);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

запись(Строка str)

Этот метод записывает строковое значение в файл, указанный в str .

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file using FileWriter write(String  str) method
 * 
 * @author pankaj
 *
 */
public class FileWriterWriteString {

	public static void main(String[] args) {
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.Writer 
			fileWriter.write("JournalDev");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

добавить(символ c)

Этот метод добавляет указанный символ в эту запись, где c является 16-разрядным символом для добавления.

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file using FileWriter append(char c) method
 * 
 * @author pankaj
 *
 */
public class FileWriterAppendCharacter {

	public static void main(String[] args) {
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.Writer 
			fileWriter.write("JournalDev");
			fileWriter.append('C');
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

смыть()

Этот метод очищает поток. Когда вызывается метод flush () , он немедленно записывает данные в выходной файл.

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file with FileWriter flush() method
 * 
 * @author pankaj
 *
 */
public class FileWriterFlushExample {

	public static void main(String[] args) {
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.Writer 
			fileWriter.write("JournalDev");
			//inherited method from java.io.OutputStreamWriter
			fileWriter.flush();
			
			fileWriter.write(" Tutorials");
			fileWriter.flush();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

закрыть()

Этот метод очищает поток перед его закрытием. Как только поток будет закрыт, вызов метода write() или flush() вызовет исключение IOException . Закрытие ранее закрытого потока не имеет никакого эффекта.

package com.journaldev.io.filewriter;

import java.io.FileWriter;

/**
 * Java write file with FileWriter close() method
 * 
 * @author pankaj
 *
 */
public class FileWriterCloseExample {

	public static void main(String[] args) {
		try(FileWriter fileWriter = new FileWriter("D:/data/file.txt")) {
			//inherited method from java.io.Writer 
			fileWriter.write("JournalDev");
			//inherited method from java.io.OutputStreamWriter
			fileWriter.close();;
			
			fileWriter.write(" Tutorials");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Выход:

java.io.IOException: Stream closed
	at sun.nio.cs.StreamEncoder.ensureOpen(Unknown Source)
	at sun.nio.cs.StreamEncoder.write(Unknown Source)
	at sun.nio.cs.StreamEncoder.write(Unknown Source)
	at java.io.OutputStreamWriter.write(Unknown Source)
	at java.io.Writer.write(Unknown Source)
	at com.journaldev.examples.FileWriterCloseExample.main(FileWriterCloseExample.java:20)

Файловая машина против потока вывода файла

  • Файловая машина предназначена для записи потоков символов, в то время как FileOutputStream используется для записи потоков необработанных байтов.
  • Файловая машина имеет дело с 16-битными символами, в то время как поток вывода файлов имеет дело с 8-битными байтами.
  • Файловая машина может обрабатывать строки в Юникоде, в то время как FileOutputStream записывает байты в файл и не принимает символы или строки, поэтому ее необходимо завернуть в OutputStreamWriter , чтобы принимать строки.

Также проверьте файл записи java для получения дополнительной информации о том, как записать файл на java.

Это все для Java-пишущей машинки, я надеюсь, что здесь не пропущено ничего важного.

Ссылка: API Doc