Utf8BomRemover

时间:2019-08-13
本文章向大家介绍Utf8BomRemover,主要包括Utf8BomRemover使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.company;

import java.io.File;
import java.io.IOException;
import java.util.Collection;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import org.apache.commons.io.DirectoryWalker;
import org.apache.commons.io.FileUtils;

public class Utf8BomRemover extends DirectoryWalker {
  private String extension = null;
  private JFrame jFrame;
  private int count;

  public Utf8BomRemover(JFrame controller, String extension) {
    this.extension = extension;
    this.jFrame = this.jFrame;
    this.count = 0;
  }

  public void start(File rootDir) throws IOException {
    this.walk(rootDir, (Collection)null);
  }

  protected void handleFile(File file, int depth, Collection results) throws IOException {
    this.remove(file);
    ++this.count;
  }

  protected void handleEnd(Collection results) throws IOException {
    JOptionPane.showMessageDialog(this.jFrame, "你成功修改" + this.count + "个.java编码的BOM文件");
  }

  private void remove(File file) throws IOException {
    byte[] bs = FileUtils.readFileToByteArray(file);
    if (bs[0] == -17 && bs[1] == -69 && bs[2] == -65) {
      byte[] nbs = new byte[bs.length - 3];
      System.arraycopy(bs, 3, nbs, 0, nbs.length);
      FileUtils.writeByteArrayToFile(file, nbs);
    }

  }
}
if(contents.length > 2 && (contents[0]&0xFF) == 0xEF && (contents[1] & 0xFF) == 0xBB && (contents[2] & 0xFF) == 0xBF) {  
    byte[] trim = new byte[contents.length - 3];  
    System.arraycopy(contents, 3, trim, 0, trim.length);    
    return trim;  
}

原文地址:https://www.cnblogs.com/tonggc1668/p/11344837.html