Итак, я написал простой файл резервной копии в моем java-коде, но когда я тестирую метод в своем тестовом классе и снова проверяю свою папку, я не вижу созданного файла копирования или резервной копии, хотя я получаю сообщение об успешности. Это даже правильно или я что-то упускаю?Это правильный способ резервного копирования файла с потоками и исключениями?
import java.io.*;
import java.util.ArrayList;
import javax.swing.*;
public class BasicFile {
File file1;
JFileChooser selection;
File file2 = new File(".", "Backup File");
public BasicFile() {
selection = new JFileChooser(".");
}
public void selectFile() {
int status = selection.showOpenDialog(null);
try {
if (status != JFileChooser.APPROVE_OPTION) {
throw new IOException();
}
file1 = selection.getSelectedFile();
if (!file1.exists()) {
throw new FileNotFoundException();
}
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "File Not Found ", "Error", JOptionPane.INFORMATION_MESSAGE);
} catch (IOException e) {
System.exit(0);
}
}
public void backupFile() throws FileNotFoundException {
DataInputStream in = null;
DataOutputStream out = null;
try {
in = new DataInputStream(new FileInputStream(file1));
out = new DataOutputStream(new FileOutputStream(file2));
try {
while (true) {
byte data = in.readByte();
out.writeByte(data);
}
} catch (EOFException e) {
JOptionPane.showMessageDialog(null, "File has been backed up!",
"Backup Complete!", JOptionPane.INFORMATION_MESSAGE);
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "File Not Found ",
"Error", JOptionPane.INFORMATION_MESSAGE);
}
} finally {
try {
in.close();
out.close();
} catch (Exception e) {
display(e.toString(), "Error");
}
}
}
boolean exists() {
return file1.exists();
}
public String toString() {
return file1.getName() + "\n" + file1.getAbsolutePath() + "\n" + file1.length() + " bytes";
}
Мой профессор сказал мне, что мне пришлось использовать классы DataInputSteam, DataOutputStream, ReadByte и WriteByte I: – beginnercoder010812
В этом случае я не вижу ничего плохого в вашем коде. Странные ограничения. Файл «Backup» должен находиться в текущем каталоге, из которого вы используете этот код. Но когда вы получаете какое-либо исключение, кроме «EOFException» здесь, вы должны отображать собственное сообщение об исключении, а не ваше собственное. Например, «Файл не найден» не является правильным сообщением для 'catch (IOException)' после catch для 'EOFException.' – EJP