public class FileUtil{
/*判断是否是目录*/
public static Boolean isDirectory(String path){
Boolean isDirectory=false;
File file=new File(path);
if(file.isDirectory()){
isDirectory=true;
}
return isDirectory;
}
/*判断路径是否是存在*/
public static Boolean isExists(String path){
Boolean isExists=false;
File file=new File(path);
if(file.exists()){
isExists=true;
}
return isExists;
}
/*从第几行开始向上删除*/
public static List readAndRemoveFirstLines(File file, int lineNum){
List strList = new ArrayList();
RandomAccessFile raf = null;
try{
raf = new RandomAccessFile(file, "rw");
//Initial write position
long writePosition = raf.getFilePointer();
for (int i = 0 ; i < lineNum ; i++){
String line = raf.readLine();
if(line == null){
break;
}
strList.add(line);
}
// Shift the next lines upwards.
long readPosition = raf.getFilePointer();
byte[] buff = new byte[1024];
int n;
while (-1 != (n = raf.read(buff))) {
raf.seek(writePosition);
raf.write(buff, 0, n);
readPosition += n;
writePosition += n;
raf.seek(readPosition);
}
raf.setLength(writePosition);
} catch(IOException e){
e.printStackTrace();
} finally{
try{
if(raf != null){
raf.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
return strList;
}
/**
* 以行为单位读取文件,常用于读面向行的格式化文件
*/
public static JSONObject readFileByLines(String fileName) {
JSONObject jsonObject = new JSONObject();
File file = new File(fileName);
BufferedReader reader = null;
try {
// System.out.println("以行为单位读取文件内容,一次读一整行:");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
// 一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null) {
// 显示行号
jsonObject.put(line+"",tempString);
System.out.println("line " + line + ": " + tempString);
line++;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
return jsonObject;
}
参考链接:https://blog.csdn.net/Lv_1093964643/article/details/82757625