package org.mortbay.ijetty.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Reader; import java.util.ArrayList; import java.util.List; import android.text.TextUtils; public class SNUtil { private static final String SETUP_FILE_NAME = "/mnt/sdcard/Media/setup.txt"; //TODO:如果文件不存在返回特定SN...... public static String readSN() { String SN = null; String data = readLine(); if (TextUtils.isEmpty(data)) return null; String spStr[] = data.split(":::"); if (spStr.length > 3) SN = spStr[2]; return SN; } public static boolean writeSN(String sn) { String line = readLine(); List<String> lst = new ArrayList<String>(); if (TextUtils.isEmpty(line)) { lst.add("zq"); lst.add("http://ey.ezagoo.com"); lst.add(sn); lst.add("BT26KA2E2G2"); lst.add(""); } else { String infos[] = line.split(":::"); for (int i = 0; i < infos.length; i++) { if (infos[i] == null) { lst.add(""); continue; } lst.add(infos[i]); } if (lst.size() > 5) lst = lst.subList(0, 5); else if (lst.size() < 5) lst.add(""); lst.set(2, sn); } String str = ""; for (int i = 0; i < 5; i++) { str += lst.get(i) + ":::"; } String s = str.substring(0, str.length() - 3); writeLine(s); line = readLine(); return line.contains(sn); } private static String readLine() { String data = null; StringBuffer buffer = new StringBuffer(); Reader in = null; FileInputStream fis = null; InputStreamReader isr = null; try { File f = new File(SETUP_FILE_NAME); if(!f.getParentFile().exists()) f.getParentFile().mkdirs(); if(!f.exists()) return "null-sn-no-file";//文件不存在返回特殊SN fis = new FileInputStream(SETUP_FILE_NAME); isr = new InputStreamReader(fis, "GB2312"); in = new BufferedReader(isr); int ch; while ((ch = in.read()) > -1) { buffer.append((char) ch); } data = buffer.toString(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (in != null) in.close(); if (isr != null) isr.close(); if (fis != null) fis.close(); } catch (IOException e) { e.printStackTrace(); } } return data; } private static void writeLine(String line) { File file = new File(SETUP_FILE_NAME); BufferedWriter out = null; try { if (file.exists()) file.delete(); out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(file, false))); out.write(line); out.flush(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (out != null) out.close(); } catch (IOException e) { e.printStackTrace(); } } } public static boolean isSingleCore() { String mode = android.os.Build.MODEL; return mode.startsWith("f04ref_BYW_ZH"); } }