four systems Ответов: 1

File writer воссоздает файл, но сообщение программы уже является файлом ....


код, который создает несколько файлов, однако он просто создает их один раз, после чего, если вы удалите файлы и запустите программу, вывод программы-файл уже существует, но он воссоздает файл, а printwriter, который должен записывать в файл, не записывает

package FileSystem;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

public class CreateFiles
{
    public static void main( String[] args ) throws IOException
    {	
        try
        {
        String[] Names = new String[20]; 
        Names[0] = "Android";
        Names[1] = "java";
        Names[2] = "computerscience";
        Names[3] = "satellite";
        Names[4] = "communication";
        Names[5] = "navigator";
        Names[6] = "science";
        Names[7] = "a";
        Names[8] = "b";
        Names[9] = "c";
        Names[10] = "d";
        Names[11] = "e";
        Names[12] = "f";
        Names[13] = "g";
        Names[14] = "h";
        Names[15] = "i";
        Names[16] = "j";
        Names[17] = "l";
        Names[18] = "m";
        Names[19] = "n";
        
        for(int j = 0; j<Names.length; j++)
        {
            File file = new File("F:\\" + Names[j] + ".txt");   
            
            PrintWriter printer = new PrintWriter(file, "UTF-8"); 
            printer.write("android is advanced java");
            if (file.createNewFile()){
	        System.out.println("File is created!");
	      }else{
	        System.out.println("File already exists.");
	      }            
            
        }        
        
        }
        catch(Exception e)            
        {
            e.printStackTrace();
        }    
        finally
        {
        }
    }
}


Что я уже пробовал:

изменил код и искал классы файлов

1 Ответов

Рейтинг:
9

Jochen Arndt

Просто ознакомьтесь с документацией по используемым функциям:

Издания(файл файл)
...
файл - файл, используемый в качестве места назначения этого писателя. Если файл существует, то он будет усечен до нулевого размера; в противном случае будет создан новый файл.


public boolean createNewFile()
...
Атомарно создает новый пустой файл с именем этого абстрактного пути тогда и только тогда, когда файл с этим именем еще не существует.
...
Возвращается:
true, если именованный файл не существует и был успешно создан; false, если именованный файл уже существует
Это всегда будет возвращать false, так как файл был создан в результате предшествующего создания файла. PrintWriter объект.

Поэтому вы должны проверить, существует ли файл, прежде чем создавать его. PrintWriter:
File file = new File("F:\\" + Names[j] + ".txt");
if (file.exists()){
    System.out.println("File already exists.");
}else{
    System.out.println("File will be created!");
}
// File will be created now if it does not exist already            
PrintWriter printer = new PrintWriter(file, "UTF-8");