如何使用Java判断txt文件是Windows格式还是Unix格式文件

时间:2016-10-18 09:05:13

标签: java text-files line-endings

使用SQL * Loader将数据加载到数据库,我们应该知道源数据的格式是Windows或Unix。

因此,我们如何使用JAVA获取文本文件的格式?如果我们可以获得格式,我们应该在SQL * Loader ctl文件中定义format参数。

1 个答案:

答案 0 :(得分:0)

我找到了解决此问题的方法。这是代码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;
}