この方法で 2 つのファイルを追加していますが、この方法で 2 つのファイルを追加していないというエラー メッセージが表示されました。
File Employ = new File("E:/employee.xml","E:/one/two/student.xml");
4 に答える
使用したコンストラクターは、Java API ドキュメントに次のように記載されています。
public File(文字列の親、文字列の子)
File
親パス名文字列と子パス名文字列から新しいインスタンスを作成します。親が null の場合、指定された子のパス名文字列で単一引数の File コンストラクターを呼び出すかのように、新しい File インスタンスが作成されます。
それ以外の場合、親のパス名文字列はディレクトリを表すために使用され、子のパス名文字列はディレクトリまたはファイルを表すために使用されます。子パス名文字列が絶対パス名の場合、システムに依存する方法で相対パス名に変換されます。親が空の文字列の場合、子を抽象パス名に変換し、システム依存のデフォルト ディレクトリに対して結果を解決することによって、新しい File インスタンスが作成されます。それ以外の場合、各パス名文字列は抽象パス名に変換され、子の抽象パス名は親に対して解決されます。
パラメータ:
parent
- 親のパス名文字列child
- 子のパス名文字列スロー:
NullPointerException
- 子がnull
2 つのファイルを追加する目的ではありません。2 つのファイルを追加するためのロジックを自分で作成する必要があります。
2 つの XML ファイルを 1 つの XML ファイルにマージしようとしているようです。Apache Commons Configurations
マージされたファイルをビジネス上意味のあるものにしたい場合は、検討する必要があります。
CombinedConfiguration
http://commons.apache.org/configuration/userguide/howto_combinedconfiguration.html
File employ = new File("E:\\employee.xml");
File employ2 = new File("E:\\one\\two\\student.xml");
??
「2 つのファイルを追加する」とは、2 つのファイルを連結することを意味する場合は、これを試してください。
import java.io.*;
import java.io.FileInputStream;
public class CopyFile{
private static void copyfile(String srFile, String dtFile){
try{
File f1 = new File(srFile);
File f2 = new File(dtFile);
InputStream in = new FileInputStream(f1);
//For Append the file.
OutputStream out = new FileOutputStream(f2,true);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0){
out.write(buf, 0, len);
}
in.close();
out.close();
System.out.println("File copied.");
}
catch(FileNotFoundException ex){
System.out.println(ex.getMessage() + " in the specified directory.");
System.exit(0);
}
catch(IOException e){
System.out.println(e.getMessage());
}
}
public static void main(String[] args){
switch(args.length){
case 0: System.out.println("File has not mentioned.");
System.exit(0);
case 1: System.out.println("Destination file has not mentioned.");
System.exit(0);
case 2: copyfile(args[0],args[1]);
System.exit(0);
default : System.out.println("Multiple files are not allow.");
System.exit(0);
}
}
}
それが役に立てば幸い!