Ich habe eine Methode gefunden, um diese Frage zu lösen. Hier ist der Code FYI:
public static String getFileType(String filePath){
String fileType ="";
int count=0;
FileInputStream in=null;
try{
in =new FileInputStream(filePath);
StringBuffer systemFormat = new StringBuffer();
int i = 0;
while((count=in.read())!=-1){
//CR: ASCII: 13
if(count == 13){
systemFormat.append(String.valueOf(count));
i++;
}
//LF: ASCII: 10
if(count == 10){
systemFormat.append(String.valueOf(count));
i++;
}
if(i == 2) break;
}
if(systemFormat.toString().contains("1313")){
fileType = "Mac";
System.out.println("It's a Mac format file");
}else if(systemFormat.toString().contains("1310")){
fileType = "Windows";
System.out.println("It's a Windows format file");
}else if(systemFormat.toString().contains("1010")){
fileType = "Unix";
System.out.println("It's a Unix format file");
}
}catch(FileNotFoundException e) {
util.LogWriter.log(e);
}catch(IOException e) {
util.LogWriter.log(e);
}
return fileType;
}
Ich glaube nicht, dass Sie nicht wissen müssen, welches Format das ist. SQL \ * Loader akzeptiert beide Formate gerne, wenn ich mich nicht irre. –
Siehe diesen Link für, wie können wir das Format der Textdatei mit [JAVA] (http://stackoverflow.com/questions/207947/how-do-i-get-a-platform-dependent-new-line-character) erhalten – Karthik
@a_horse_with_no_name Ich habe das Problem beim Laden von Windows-Format-Datei von SQL \ * Loader, die in Unix-System ist. Der SQL \ * Loader analysiert die Quelldatei mit einem Fehler. Ich möchte also das Format der Datei mit Java direkt abrufen und es in der ctl-Datei des SQL \ * Loader definieren. Dann wird SQL \ * Loader es richtig behandeln. –