Java讀取文件工具類

 

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<String> readAndRemoveFirstLines(File file, int lineNum){
        List<String> strList = new ArrayList<String>();
        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
相關文章
相關標籤/搜索