org.apache.hadoop.hive.ql.util.DosToUnix
//将window格式文件转换为unix格式
public static String convertWindowsScriptToUnix(File windowsScriptFile) throws Exception {
String windowsScriptFilename = windowsScriptFile.getName();
String unixScriptFilename = getUnixScriptNameFor(windowsScriptFilename);
File unixScriptFile = null;
if (windowsScriptFile.getParent() != null) {
unixScriptFile = new File(windowsScriptFile.getParent() + "/" + unixScriptFilename);
} else {
unixScriptFile = new File(unixScriptFilename);
}
BufferedWriter writer = new BufferedWriter(new FileWriter(unixScriptFile));
try {
BufferedReader reader = new BufferedReader(new FileReader(windowsScriptFile));
try {
int prev = reader.read();
int next = reader.read();
while( prev != -1 ) {
if ( prev != -1 && ( prev != '\r' || next != '\n' ) ) {
writer.write(prev);
}
prev = next;
next = reader.read();
}
}
finally {
reader.close();
}
}
finally {
writer.close();
}
unixScriptFile.setExecutable(true);
return unixScriptFile.getAbsolutePath();
}
//判断文件格式
public static boolean isWindowsScript(File file) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
char[] buffer = new char[4096];
int readLength = reader.read(buffer);
if (readLength >= 2 && buffer[0] == '#' && buffer[1] == '!') {
for(int i=2; i<readLength; ++i) {
switch(buffer[i]) {
case '\r':
return true;
case '\n':
return false;
}
}
}
} catch (Exception e) {
// It means, It is not a valid windows script file so ignore the exception and return false.
} finally {
if (reader != null) {
try {
reader.close();
}catch (Exception e) {
}
}
}
return false;
}