Komentarz wydaje mi się zbędny. W skrócie doszedłem do pewnego punktu i dalej nie idzie. Funkcje powinno dać się wywołać w postaci komend w konsoli, taki jest cel. Klasa FileManager działa poprawnie !
klasa Start
import java.io.Console;
public class Start {
public static void main(String[] args) {
FileManager fw = new FileManager();
Console con = System.console();
if (con == null) {
System.out.println("Brak konsoli");
System.exit(-1);
}
args[0] = "";
args[0] = con.readLine("Wprowadź komendę (write, read lub copy): ");
con.printf("Wybrany tryb: " + args[0]);
if (args[0] == "read") {
if (args.length < 1) {
System.out.println("Wywołanie programu: Start nazwa_pliku");
System.exit(0);
}
fw.readFile(args[1]);
}
if (args[0] == "write") {
if (args.length < 1) {
System.out.println("Wywołanie programu: Start nazwa_pliku");
System.exit(0);
}
fw.writeFile(args[1]);
}
if (args[0] == "copy") {
if (args.length < 2) {
System.out.println("Wywołanie programu: " +
"Start nazwa_pliku_zróbłowego nazwa_pliku_docelowego");
System.exit(0);
}
fw.copyFile(args[1], args[2]);
}
}
}
klasa FileManager
public class FileManager {
public void writeFile(String a) {
String line = "";
FileOutputStream outs = null;
try {
outs = new FileOutputStream(a);
} catch(FileNotFoundException e) {
System.out.println("Błąd poczas otwierania pliku");
System.exit(-1);
}
DataOutputStream dataout = new DataOutputStream(outs);
BufferedReader inpstr = new BufferedReader(new InputStreamReader(System.in));
try {
while(true) {
if((line = inpstr.readLine()) == null || line.equals("exit")) {
break;
}
dataout.writeBytes(line + '\n');
}
} catch(IOException e) {
System.out.println("Read/Write error.");
}
}
public void readFile(String a) {
String line = "";
FileInputStream finpstr = null;
try {
finpstr = new FileInputStream(a);
} catch(FileNotFoundException e) {
System.out.println("Brak pliku");
System.exit(-1);
}
DataInputStream dataout = new DataInputStream(finpstr);
BufferedReader inpstr = new BufferedReader(new InputStreamReader(finpstr));
try {
while((line = inpstr.readLine()) != null) {
System.out.println(line);
}
} catch(IOException e) {
System.out.println("Błąd wejścia - wyjścia.");
}
}
public void copyFile(String a, String b) {
FileInputStream finpstr = null;
FileOutputStream outs = null;
try {
finpstr = new FileInputStream(a);
} catch(FileNotFoundException e) {
System.out.println("Brak pliku: " + a);
System.exit(-1);
}
try {
outs = new FileOutputStream(b);
} catch(FileNotFoundException e) {
System.out.println("Nie można utworzyć pliku: " + b);
System.exit(-1);
}
try {
int c;
while((c = finpstr.read()) != -1) {
outs.write(c);
}
System.out.println("Kopiowanie zakończone");
} catch(IOException e) {
System.out.println("Błąd wejścia - wyjścia.");
}
}
}