今天小馬來寫下自己的開發過程中碰到的問題和所犯的錯,雖然簡單,但還是希望通過總結提高自己,哪怕很小的進步,也希望朋友們跟小馬多交流,指點小馬的不足,多批評小馬,有很多東西要學,我們多多交流,共同進步,直接看代碼:
package com.mzh.www;
import java.io.File;
import java.io.IOException;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
/**
* @Title: FileTestActivity.java
* @Package com.mzh.www
* @Description: 檔案類File的常用方法
* @author MZH
* @version V2.2
*/
public class FileTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//小馬寫的時候不帶字尾名,其實這個要寫的
//而且安卓中不建議用此種寫法,支援使用Environment擷取路徑
String path = "/sdcard/fileName";
File file = new File(path); //不多講
//下面是File類的一些靜态屬性
//file.separator; 小馬以前喜歡用"/",雖然不錯,但不支援,接着看下面
//舉兩種 寫法:
//方法一:
String path2 = Environment.getExternalStorageDirectory()
.getPath()
+"/"+"XiaoMa.txt";
File fileName = new File(path2);
//此處可以添加對檔案的操作,IO流
//方法二:
String path3 = Environment.getExternalStorageDirectory()
+File.separator+"XiaoMa.txt";
File fileNam = new File(path3);
/**
* 大家是不是發現這兩種寫法第二種多此一舉?其實并非如此的
*,在Android中,官方鼓勵支援使用
* File.separator來插入"/"符号
* 因為:不同的機型配置系統等各種因素下,"/"符号的轉義字元也會不同*
*,是以為保險起見,
* 建議朋友們使用File.separator來差別
*/
//下面講下檔案的建立是怎麼一回事
//Android 中建立檔案的方式有很多種,小馬現在講下
//我們經常用到的幾種哦,吼吼
File file3 = new File("path"); //path為要建立檔案的路徑
//,相關路徑可檢視API
//建立一個臨時檔案
//小馬講下,如果讓我們自己建立臨時檔案時,我們還得拼接檔案名
//,Android為我們提供了更快捷的方式
//prefix代表:檔案名字首,suffix代表:生成臨時檔案的格式,
//如:.txt .amr .jpg .png等等
try {
//此處小馬未指定路徑,它會預設建立在SD卡根目錄下
File tempFile = File.createTempFile("字首", "格式"); //記得加入try語句塊中
//如果想要指定路徑,則可以這樣寫
File tempFile2 = File.createTempFile("字首", "格式",new File("指定臨時檔案路徑"));
} catch (IOException e) {
e.printStackTrace();
}
//建立檔案的方式有三種:要看仔細咯
File file2 = new File(path3); //因為路徑是自己指定的,
//在此小馬就直接合上面定義過的路徑了
if(!file2.exists()){
//方式一:
try {
file2.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//方式二:
//file2.mkdir();
//方式三:
//file2.mkdirs();
/**
* 以上建立檔案方式好像也沒多大不同之處,小馬的的錯誤,
*建立檔案的時候随便調用這三個方法其中之一
* 但後來發現還是有明顯差別的,現在貼一段官方API說明
*,小馬英語也不咋的,希望英語一般的朋友們
* 看到英語不要怕自己不會翻譯什麼的,多查單詞,
*不會的再求助工作翻譯下,查可以提高自己的英語能力
*/
* 小述:講下“/”與“\”的不同,在建立檔案時不能使用使用windows方式,
*也就是"\",除非你轉義有linux方式的話就直接用“/”,省了麻煩,
*還不會出錯轉義錯誤等問題,對吧?
/**
* createNewFile()
Creates a new, empty file on the file system according to the path information
stored in this file.
這個方法指在指定路徑下建立一個empty(空的,小馬就認識幾個單詞,
*其餘的都有道查)檔案
*/
/**
* mkdir()
Creates the directory named by the trailing filename of
this file.
這個方法指:建立一個指定目錄下的檔案,但這個方法不能建立多個目錄,
一般都使用加S的,這個盡量少用,一般私有檔案
及私有目錄的建立用這個方法
*/
* mkdirs()
Creates the directory named by the trailing filename of this file,
including the complete directory path required to create this
directory.
這個方法指:建立一個指定目錄下的檔案,與上面不同的是,
此方法可以建立多個目錄哦,常用的建立檔案的方法
* 最後,講下isDirectory() 與 isFile()的小差別
* 小馬剛開始不懂什麼是Directory,後來試了下,講直接的,
就是:是否是檔案夾,isFile是否是檔案,簡單吧??O_O
}
}
}
最後,不要忘記加Android中檔案操作的權限:
<!--往sdcard中寫入資料的權限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!--在sdcard中建立/删除檔案的權限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
這些問題都是小馬在開發過程中遇到過的問題,雖然很低級 ,
但錯誤犯多了就不會犯了,最後 ,
小馬希望大家多查英文文檔,不管自己
英語閱讀能力好不好,講真話,小馬的英語,可以讓你哭,
但要學會善用工具學習,愛程式設計,就要補程式設計方面的缺陷,不要被這英語吓到
啦,今天就講這些内容吧,File類中其它方法都很簡單,
大家可以試着用下詞典查下意思,很容易知道它是幹嗎的方法的,相信小馬
小馬希望:能跟大夥交流學習,共同進步,完成菜鳥中的菜鳥,
到高手中的高手的蛻變,高手,是從菜鳥努力導緻的,不是生下來就有的,
希望我們共同進步
日後小馬如果再在開發過程中碰到有關File類的問題,會繼續追加到此文章中,希望對處于跟小馬一樣階段的朋友們有所幫忙,謝謝啦,O_O,每天進步一點,加油
本文轉自華華世界 51CTO部落格,原文連結:http://blog.51cto.com/mzh3344258/746174,如需轉載請自行聯系原作者