logo

Креирање датотеке помоћу ФилеОутпутСтреам-а

ФилеОутпутСтреам класа припада току бајтова и чува податке у облику појединачних бајтова. Може се користити за креирање текстуалних датотека. Датотека представља складиштење података на другом медију за складиштење као што је чврсти диск или ЦД. Да ли је датотека доступна или може бити креирана зависи од основне платформе. Неке платформе посебно дозвољавају отварање датотеке ради писања од стране само једног ФилеОутпутСтреам-а (или других објеката за писање датотека) истовремено. У таквим ситуацијама конструктори у овој класи неће успети ако је укључена датотека већ отворена. ФилеОутпутСтреам је намењен за писање токова необрађених бајтова као што су подаци о слици. За писање низова знакова размислите о коришћењу ФилеВритер-а. Важне методе:
    воид цлосе(): Затвара излазни ток ове датотеке и ослобађа све системске ресурсе повезане са овим током. заштићена воид финализе() : Чисти везу са датотеком и осигурава да се метода затварања излазног тока ове датотеке позива када више нема референци на овај ток. воид врите(бите[] б) : Уписује бајтове б.ленгтх из наведеног низа бајтова у излазни ток ове датотеке. воид врите(бите[] б инт офф инт лен) : Уписује лен бајтове из наведеног низа бајтова почевши од оффсет офф у овај излазни ток датотеке. воид врите(инт б): Уписује наведени бајт у излазни ток ове датотеке.
Следеће кораке треба пратити да бисте креирали текстуалну датотеку која чува неке знакове (или текст):
    Подаци о читању: First of all data should be read from the keyboard. For this purpose associate the keyboard to some input stream class. The code for using DataInputSream class for reading data from the keyboard is as:
    DataInputStream dis =new DataInputStream(System.in);
    Here System.in represent the keyboard which is linked with DataInputStream object Пошаљите податке у ОутпутСтреам: Now associate a file where the data is to be stored to some output stream. For this take the help of FileOutputStream which can send data to the file. Attaching the file.txt to FileOutputStream can be done as:
    FileOutputStream fout=new FileOutputStream(file.txt);
    Читање података из ДатаИнпутСтреам-а: The next step is to read data from DataInputStream and write it into FileOutputStream . It means read data from dis object and write it into fout object as shown here:
    ch=(char)dis.read(); fout.write(ch);
    Затворите датотеку:Коначно, било коју датотеку треба затворити након обављања улазних или излазних операција на њој, иначе подаци могу бити оштећени. Затварање датотеке се врши затварањем повезаних токова. На пример, фоут.цлосе(): ће затворити ФилеОутпутСтреам, стога не постоји начин да се подаци уписују у датотеку.
Имплементација: Java
//Java program to demonstrate creating a text file using FileOutputStream import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.FileOutputStream; import java.io.IOException; class Create_File {  public static void main(String[] args) throws IOException   {  //attach keyboard to DataInputStream  DataInputStream dis=new DataInputStream(System.in);  // attach file to FileOutputStream  FileOutputStream fout=new FileOutputStream('file.txt');  //attach FileOutputStream to BufferedOutputStream  BufferedOutputStream bout=new BufferedOutputStream(fout1024);  System.out.println('Enter text (@ at the end):');  char ch;  //read characters from dis into ch. Then write them into bout.  //repeat this as long as the read character is not @  while((ch=(char)dis.read())!='@')  {  bout.write(ch);  }  //close the file  bout.close();  } } 
If the Program is executed again the old data of file.txt will be lost and any recent data is only stored in the file. If we don’t want to lose the previous data of the file and just append the new data to the end of already existing data and this can be done by writing true along with file name.
FileOutputStream fout=new FileOutputStream(file.txttrue); 

Побољшање ефикасности коришћењем БуффередОутпутСтреам-а

Normally whenever we write data to a file using FileOutputStream as:
fout.write(ch);
Here the FileOutputStream is invoked to write the characters into the file. Let us estimate the time it takes to read 100 characters from the keyboard and write all of them into a file.
  • Претпоставимо да се подаци читају са тастатуре у меморију помоћу ДатаИнпутСтреам-а и потребна је 1 секунда да се прочита 1 знак у меморију и овај знак се уписује у датотеку помоћу ФилеОутпутСтреам-а трошењем још 1 секунде.
  • Дакле, за читање и писање датотеке ће бити потребно 200 секунди. Ово је губљење пуно времена. С друге стране, ако се користи Буфферед цлассед, они обезбеђују бафер који се прво попуњава знаковима из бафера који се могу одједном уписати у датотеку. Бафероване класе треба да се користе у вези са другим класама тока.
  • First the DataInputStream reads data from the keyboard by spending 1 sec for each character. This character is written into the buffer. Thus to read 100 characters into a buffer it will take 100 second time. Now FileOutputStream will write the entire buffer in a single step. So reading and writing 100 characters took 101 sec only. In the same way reading classes are used for improving the speed of reading operation.  Attaching FileOutputStream to BufferedOutputStream as:
    BufferedOutputStream bout=new BufferedOutputStream(fout1024);
    Here the buffer size is declared as 1024 bytes. If the buffer size is not specified then a default size of 512 bytes is used
Важне методе класе БуффередОутпутСтреам:
    воид флусх() : Испразни овај баферовани излазни ток. воид врите(бите[] б инт офф инт лен) : Уписује лен бајтове из наведеног низа бајтова почевши од оффсет офф у овај баферовани излазни ток. воид врите(инт б): Уписује наведени бајт у овај баферовани излазни ток.
Излаз:
C:> javac Create_File.java C:> java Create_File Enter text (@ at the end): This is a program to create a file @ C:/> type file.txt This is a program to create a file 
Повезани чланци:
  • ЦхарацтерСтреам вс БитеСтреам
  • Класа датотеке у Јави
  • Руковање датотекама у Јави користећи ФилеВритер и ФилеРеадер
Креирај квиз