package com.phonetest.stresstest;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import jxl.Cell;
import jxl.Workbook;
import jxl.format.CellFormat;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
public class MainActivity extends AppCompatActivity {
private EditText etEncrypt, etDecrypt;
private Button btnEncrypt, btnDecrypt;
private TextView tvStatus;
String TAG = "callphone";
String File_lock,File_unlock;
Util ut=new Util();
private Handler uiHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
tvStatus.setText((String) msg.obj);
switch (msg.what) {
case 0:
tvStatus.setText("加密成功");
tvStatus.setTextColor(getResources().getColorStateList(R.color.green));
break;
case 1:
tvStatus.setText("加密失败");
tvStatus.setTextColor(getResources().getColorStateList(R.color.colorAccent));
Toast.makeText(getApplicationContext(),"文件不存在,请重新输入!",Toast.LENGTH_LONG).show();
break;
case 2:
tvStatus.setText("解密成功");
tvStatus.setTextColor(getResources().getColorStateList(R.color.green));
break;
case 3:
tvStatus.setText("解密失败");
tvStatus.setTextColor(getResources().getColorStateList(R.color.colorAccent));
Toast.makeText(getApplicationContext(),"文件不存在,请重新输入!",Toast.LENGTH_LONG).show();
break;
default:
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.initView();
this.initListener();
}
private void initView() {
etEncrypt = (EditText) findViewById(R.id.et_encrypt);
etDecrypt = (EditText) findViewById(R.id.et_decrypt);
btnEncrypt = (Button) findViewById(R.id.btn_encrypt);
btnDecrypt = (Button) findViewById(R.id.btn_decrypt);
tvStatus = (TextView) findViewById(R.id.tv_status);
}
private void initListener() {
btnEncrypt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
if(TextUtils.isEmpty(etEncrypt.getText()) ){
try {
Toast.makeText(getApplicationContext(),"请输入文件名",Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("为空");
Looper.loop();
}else {
System.out.println("不为空");
File_lock=etEncrypt.getText().toString();
String [] type=File_lock.split("\\.");
System.out.println("type[0]:"+type[0]+" type[1]:"+type[1]);
if(type[1].equals("txt")){
System.out.println("txt文件");
encodeTXTFile("/mnt/sdcard/" + File_lock, "/mnt/sdcard/" + File_lock);
}else if(type[1].equals("xls")){
System.out.println("xls文件");
encodeXLSFile("/mnt/sdcard/" + File_lock);
}
}
}
}).start();
}
});
btnDecrypt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
if(TextUtils.isEmpty(etDecrypt.getText()) ){
try {
Toast.makeText(getApplicationContext(),"请输入文件名",Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("为空");
Looper.loop();
}else {
System.out.println("不为空");
File_unlock=etDecrypt.getText().toString();
String [] type2=File_unlock.split("\\.");
System.out.println("type[0]:"+type2[0]+" type[1]:"+type2[1]);
if(type2[1].equals("txt")){
System.out.println("txt文件");
DecryptTXT("/mnt/sdcard/" + File_unlock);
}else if(type2[1].equals("xls")){
System.out.println("xls文件");
DecryptXLS("/mnt/sdcard/" + File_unlock);
}
}
}
}).start();
}
});
}
//加密txt
private void encodeTXTFile(String inputPath, String outputPath) {
File localFile = new File(inputPath);
try {
if (!localFile.exists()) {
Message message=new Message();
message.what=1;
uiHandler.sendMessage(message);
Log.d(TAG, "发送message4");
}
StringBuilder builder = new StringBuilder();
BufferedReader in = new BufferedReader(new FileReader(localFile));
String line = "";
while ((line = in.readLine()) != null) {
if (!line.trim().startsWith("#") && !line.trim().equals("")) {
//不以#开头并且不为空值,为了剔除#的数据注释,输出去掉首尾空格
builder.append(line + '\n');
}
}
System.out.print("AA..:" + builder.toString());
//产生加密文件
ut.generateFile(ut.builder2Encode(builder.toString()), outputPath);
Message message=new Message();
message.what=0;
uiHandler.sendMessage(message);
Log.d(TAG, "发送message0");
} catch (IOException e) {
e.printStackTrace();
}
}
//解密txt
public void DecryptTXT(String outputPath) {
InputStream is = null;
//创建一个32字节(默认大小)的缓冲区
ByteArrayOutputStream outStream = null;
try {
File file2=new File(outputPath);
if(!file2.exists()){
Message message=new Message();
message.what=3;
uiHandler.sendMe