這段時間電腦被朋友借走了,沒有寫文章。晚上使用Kindle看看科技類的書籍,推薦《浪潮之巔》。代碼不多,直接貼出來。
public class MainActivity extends Activity {
Button mCreateBtn;
Button mCopyBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化按鈕組件
findview();
}
private void getCurrenFilePath() {
// 獲取當前APP目錄下的files目錄路徑
File path = this.getFilesDir();
Log.i("TAG", path.toString());
// 創建新文件路徑和文件名
File Tempfile = new File(path.toString() + "temp.txt");
if (!Tempfile.exists()) {
try {
// 創建新文件
Tempfile.createNewFile();
inputSting(Tempfile, "this is a tempfile");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private void inputSting(File filepath, String str) {
try {
FileWriter fw = new FileWriter(filepath, true);
BufferedWriter bw = new BufferedWriter(fw);
// 將傳入的str寫入文件中
bw.write(str + "\n");
bw.newLine();
bw.flush();
bw.close();
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void findview() {
// TODO Auto-generated method stub
mCreateBtn = (Button) findViewById(R.id.Create_btn);
mCopyBtn = (Button) findViewById(R.id.Copy_btn);
mCreateBtn.setOnClickListener(new BtnOnClick());
mCopyBtn.setOnClickListener(new BtnOnClick());
}
private void copyFile() {
//文件路徑
String FROMPATH = "";
//複製文件存放路徑
String TOPATH = "";
//APP目錄下
FROMPATH = this.getFilesDir().toString();
String lStorageState = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(lStorageState)) {
// 可讀寫 創建文件目錄
File SDirectory = Environment.getExternalStorageDirectory();
String filePath = SDirectory.getPath() + "/copyfile";
File TempFilePath = new File(filePath);
if (!TempFilePath.exists()) {
Log.i("TAG", "不存在則創建該文件夾");
TempFilePath.mkdirs();
// 得到存放數據庫的目錄
} else {
Log.i("TAG", "已創建該文件夾");
}
TOPATH = filePath;
} else {
Log.i("TAG", "未找到外部存儲器");
return;
}
if (copy(FROMPATH, TOPATH) == 0) {
Log.i("TAG", "備份成功");
Toast.makeText(MainActivity.this, "文件備份成功!!!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "文件備份失敗!!!", Toast.LENGTH_SHORT).show();
}
}
public int copy(String fromFile, String toFile) {
File root = new File(fromFile);
//獲取當前日期
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMdd_HHmmss");
java.util.Date currendata = new java.util.Date();
//以日期命名文件名
String date = sDateFormat.format(currendata);
Log.i("TAG", date);
toFile = toFile + "/" + date + ".txt";
if (!root.exists()) {
return -1;
}
InputStream fosfrom;
try {
fosfrom = new FileInputStream(fromFile);
//將源文件的輸入流輸出到創建的文件夾下
OutputStream fosto = new FileOutputStream(toFile);
byte bt[] = new byte[1024];
int c;
while ((c = fosfrom.read(bt)) > 0) {
fosto.write(bt, 0, c);
Log.i("TAG", "複製完成");
}
fosfrom.close();
fosto.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
//按鈕的點擊事件
private class BtnOnClick implements OnClickListener {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.Create_btn:
getCurrenFilePath();
break;
case R.id.Copy_btn:
copyFile();
break;
default:
break;
}
}
}
}