2015-05-23 4 views
1

Я пытаюсь поэкспериментировать со всей идеей создания двух текстовых файлов, а затем записать в один из них, переименовать второй файл с первым файлом и затем удалить первый файл. У меня есть школьный проект, где мне нужно применить эту концепцию. Поэтому, прежде чем я применил концепцию в своем проекте, я попытался поэкспериментировать с грубым кодом. Теперь все работает отлично, за исключением того, что второй файл не содержит данные из первого файла. Как исправить эту проблему?Переименование и удаление текстового файла в java

Это мой класс, который называется мясным пирогом: -

package project4; 

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

public class potpie { 

    PrintWriter out,cr; 

    File file1 = new File("trial.txt"); 
    File file2 = new File("item.txt"); 

    public void createfile() throws IOException 
    { 
     out = new PrintWriter(new FileWriter(file1,true)); 

     out.println("User1" + "639755"); 

     cr = new PrintWriter(new FileWriter(file2,true)); 
     cr.close(); 
     out.close(); 
     file1.delete(); 
     file2.renameTo(file1); 

} 

} 

Я получаю пустой вывод в моем файле trial.txt и я не знаю, где я сделал ошибку. Пожалуйста, помогите мне.

+0

Вы ничего не пишете во второй файл, неудивительно, почему он пуст – Dici

+0

Я рекомендую научиться использовать отладчик, например, тот, что есть в Eclipse. Это позволит вам запускать свою программу шаг за шагом и выяснить, что не так. – chrylis

+0

Вы закрываете поток, прикрепленный к файлу, не используя его ... –

ответ

2

Я думаю, что ваша реальная цель была:

public class potpie { 

    PrintWriter cr; 

    File file1 = new File("trial.txt"); 
    File file2 = new File("item.txt"); 

    public void createfile() throws IOException 
    { 
     cr = new PrintWriter(new FileWriter(file2,true)); 

     cr.println("User1" + "639755");  

     cr.close(); 
     file1.delete(); 
     file2.renameTo(file1); 

    } 

} 

Что вы сейчас делаете, переименовав пустой файл, поэтому не удивительно, почему переименованный файл не будет пустым тоже. Кстати, вы неправильно используете концепцию атрибута в своем классе, вы должны хорошо подумать о лучшей структуре вашего кода.

+0

: - Большое спасибо. У меня нет 15 очков репутации. Итак, я пока не могу ответить на ваш ответ. Но большое спасибо. Я очень ценю это. – Raj

+0

Вы можете принять ответ, если он будет полезен, но счастлив, что это вам помогло, пока! – Dici

0

Вы создали пустой файл2. Затем вы написали «User1» + «639755» в файл1. Затем удалите файл1 и переименуйте файл2 в файл1. Очевидно, вы получите пустой файл1.

+0

: - Спасибо за исправление меня. Моя цель состояла в том, чтобы скопировать содержимое в файл1 в файл2, а затем удалить файл1 и переименовать файл2 в файл1. Как я могу это сделать? – Raj

1

Вы пишете до file1, а затем удаляете его, а затем переименование file2 (которое вы не указали) до file1. Возможно, вы хотели удалить пустой файл и переименовать его?

+0

: Спасибо за исправление. Моя цель состояла в том, чтобы скопировать содержимое в файл1 в файл2, а затем удалить файл1 и переименовать файл2 в файл1. Как я могу это сделать? – Raj

Смежные вопросы