格式化网络下载的js文件

本文介绍了一个使用Java编写的简单工具,该工具可以读取一个JavaScript文件并进行格式化输出,包括调整缩进、换行等操作以提高代码可读性。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class FormatJs {

 public static void main(String[] args) throws Exception {
  String pathUrl = "c:/VAOlwoFwBmQ.js";
   String outUrl= "c:/out.js";
  InputStream input = new FileInputStream(pathUrl);
  OutputStream output = new FileOutputStream(outUrl);
  int data = input.read();
  int spaceNumber = 2;
  int leftFlag = 0;
  boolean printFlag = false;
  int doubleQute = 0;
  int singleQute = 0;
  while (data != -1) {

   if (leftFlag != 0 && printFlag) {
    printSpace(output, spaceNumber, leftFlag);
    printFlag = false;
   }
   if (data == 123) { // {
    output.write(123);
    if ( singleQute != 1 && doubleQute !=1 ){
    output.write(10);
    leftFlag = leftFlag + 1;
    printFlag = true;
    }
   } else if (data == 125) {// }
    if ( singleQute != 1 && doubleQute !=1 ){
    output.write(10);
    leftFlag = leftFlag - 1;
    printFlag = true;
    printSpace(output, spaceNumber, leftFlag);
    }
    output.write(125);
   } else if (data == 59) {// ;
    output.write(59);
    if ( singleQute != 1 && doubleQute !=1 ){
    output.write(10);
    printFlag = true;
    }
   } else if (data ==39){//'
    singleQute = singleQute + 1;
    output.write(data);
    if ( singleQute== 2|| doubleQute == 1){
     singleQute = 0;
    }
   } else if ( data == 34){//"
    doubleQute = doubleQute + 1;
    output.write(data);
    if ( doubleQute == 2 || singleQute == 1)
     doubleQute = 0;
   }else {
    output.write(data);
   }

   data = input.read();
  }
  output.flush();
  output.close();
  input.close();
 }

 public static void printSpace(OutputStream output, int spaceNumber, int leftFlag) {
  try {
   for (int i = 0; i < spaceNumber * leftFlag; i++) {
    output.write(32);
   }
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值