使用Java判断一个文件的系统格式(亲测可用),比如我们常见的Windows格式的文件,Unixg格式的文件,Mac格式的文件;常常有这样的场景:我们在Windows系统编写的脚步上传到Linux系统执行,执行过程中偶尔会出现各种各样奇怪的问题,然后还找不到原因!好了,大概率是脚本系统格式问题。
一、首先来看一下不使用代码程序的情况下怎么查看文件的格式
1.如果有notepad++,直接打开查看右下角,既可以查看当前的文件系统格式,也可以直接点击修改
2.用vim命令,命令行模式下:set ff 就可以查看当前的文件系统格式,:set ff=unix 就可以修改当前的文件格式
二、使用Java代码判断文件的系统格式
public static void main(String[] args) {
String filePath = "F:\\temp\\1.sh";
System.out.println(getFileSystemFormat(filePath));
}
public static String getFileSystemFormat(String filePath) {
File file = new File(filePath);
if (!file.exists()) {
System.out.println("文件不在,路径:" + filePath);
return "undefined";
}
try (FileInputStream in = new FileInputStream(filePath)) {
StringBuffer systemFormat = new StringBuffer();
int count;
int i = 0;
while ((count = in.read()) != -1) {
//CR: ASCII: 13
if (count == 13) {
systemFormat.append(count);
i++;
}
//LF: ASCII: 10
if (count == 10) {
systemFormat.append(count);
i++;
}
if (i == 2) break;
}
if (systemFormat.toString().contains("1313")) {
return "Mac";
}
if (systemFormat.toString().contains("1310")) {
return "Windows";
}
if (systemFormat.toString().contains("1010")) {
return "Unix";
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("Exception e");
}
return "undefined";
}
亲测可用!