package com.alibaba.luaview.tools; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.PrintStream; import java.nio.charset.Charset; import java.util.Vector; public class DebugLuaCreaterMain { public static void main(String[] args) { new DebugLuaCreaterMain().run(); } private void run() { byte[] bs = file_to_bytes("/Users/dongxicheng/Desktop/LuaView-SDK/LuaViewSDK/IOS/SDK/LuaViewSDK/Classes/lvdebug/debug.lua"); PrintStream ps = getPrintStream("/Users/dongxicheng/Desktop/LuaView-SDK/LuaViewSDK/IOS/SDK/LuaViewSDK/Classes/lvdebug/LVDebugLua.m"); ps.println(); ps.println("// debug.lua"); ps.println("char g_debug_lua[" + (bs.length + 1) + "] = {"); ps.print(" "); int index0 = 0; for (int i = 0; i < bs.length; i++) { int c = bs[i] & 0xff; if (' ' <= c && c < 127 && c != '\'' && c != '\\') { ps.print("'" + (char) c + "',"); } else { ps.print("0x" + Integer.toHexString(c) + ","); } if (c == '\n') { ps.println(); String s = new String(bs, index0, i - index0, Charset.forName("UTF-8")).trim(); if (s.length() > 0) ps.println(" // " + s); index0 = i + 1; ps.print(" "); } } ps.println("0"); ps.println("};"); ps.println(); ps.close(); } private byte[] file_to_bytes(String fileName) { try { DataInputStream fis = new DataInputStream(new FileInputStream(fileName)); int length = fis.available(); byte[] bs = new byte[length]; fis.readFully(bs); fis.close(); return bs; } catch (Exception e) { e.printStackTrace(); } return null; } void strings_to_file(Vector<String> strings, String fileName) { try { PrintStream dos = getPrintStream(fileName); for (int i = 0; i < strings.size(); i++) { dos.println(strings.elementAt(i)); } dos.close(); } catch (Exception e) { e.printStackTrace(); } } private PrintStream getPrintStream(String fileName) { try { PrintStream f = new PrintStream(new File(fileName), "UTF-8"); return f; } catch (Exception e) { e.printStackTrace(); } return null; } }