① android如何讀取sd卡目錄文件夾下多個文件,自定義一個case文件夾,如何讀取裡面的多個文件
List<File> mFileList;
public void onCreate(Bundle savedInstanceState) {
mFileList=new ArrayList<File>();
File f = new File("mnt/sdcard/case");
List<File> fileList=getFile(f);//將這個集合載入到Adapter里 在ListView里顯示就行了
}
public List<File> getFile(File file){
File[] fileArray =file.listFiles();
for (File f : fileArray) {
if(f.isFile()){
mFileList.add(f);
}else{
getFile(f);
}
}
return mFileList;
}
② android一個文本文件如何按行讀取
java">try{
InputStreammyInput=mcontext.getResources().openRawResource(R.raw.medicalspeciality);
InputStreamReaderreader=newInputStreamReader(myInput);
BufferedReaderbreader=newBufferedReader(reader);
Stringstr;
FileWritermyOutput=newFileWriter(outFileName,true);
while((str=breader.readLine())!=null){
System.out.println(i+++str);
}
//Closethestreams
myOutput.flush();
myOutput.close();
myInput.close();
}catch(Exceptione){
//TODO:handleexception
e.getStackTrace();
}
③ android讀取txt文件
您好,Android的res文件夾是用來存儲資源的,可以在res文件夾下建立一個raw文件夾,放置在raw文件夾下的內容會被原樣打包,而不會被編譯成二進制文件,並且可以通過R文件進行很方便地訪問。
比如我們可以將更新信息、版權信息等放到txt文件中,然後放到raw文件中,然後很方便地進行訪問。
在raw中放入一個a.txt文件,然後就可以在Activity中使用getResources().openRawResource(R.raw.a);方法獲取一個此文件的InputStream類,而後就可以很方便地進行讀寫a.txt了。
④ android讀取TXT文件數據
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String fileName = "/sdcard/y.txt";//文件路徑
// 也可以用String fileName = "mnt/sdcard/Y.txt";
String res = "";
try {
FileInputStream fin = new FileInputStream(fileName);
// FileInputStream fin = openFileInput(fileName);
// 用這個就不行了,必須用FileInputStream
int length = fin.available();
byte[] buffer = new byte[length];
fin.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");////依Y.txt的編碼類型選擇合適的編碼,如果不調整會亂碼
fin.close();//關閉資源
System.out.println("res--->"+res);
int a=Integer.parseInt(res.substring(3, 5));
int b=Integer.parseInt(res.substring(8, 10));
System.out.println(a+"res--->"+b);//獲取的a.b
} catch (Exception e) {
e.printStackTrace();
}
}
⑤ Android開發之如何讀寫文件
【轉】
首先介紹如何存儲數據,顯然,要將數據從應用中輸出到文件中,必須得到一個輸出流outPutStream,然後往輸出流中寫入數據,在這里Android自帶了一個得到應用輸出流的方法
FileOutputStream fos =context.openFileOutput(「yuchao.txt」,Context.MODE_PRIVATE); (1)
其中第一個屬性為文件名,第二個屬性為讀寫模式(有關讀寫模式的說明下面將詳細闡述),
然後在文件輸出流fos中便可以寫入數據
Fos.write(「Hi,」I』m Chao Yu!」.getBytes());
用完文件輸出流之後記得關閉
fos.close();
這樣,在/data/data/packageName/file目錄下就生成了一個文件名為yuchao.txt的文件,文件中的內容為」 Hi,I』m Chao Yu!」
有關(1)中讀寫模式其實就是制定創建文件的許可權以及在讀寫的時候的方式,Android中提供了以下幾種讀寫模式
Context.MODE_PRIVATE = 0
該模式下創建的文件其他應用無權訪問,並且本應用將覆蓋原有的內容
Context.MODE_APPEND = 32768
該模式下創建的文件其他應用無權訪問,並且本應用將在原有的內容後面追加內容
Context.MODE_WORLD_READABLE = 1
該模式下創建的文件其他應用有讀的許可權
Context.MODE_WORLD_WRITEABLE = 2
該模式下創建的文件其他應用有寫的許可權
如果需要將文件設置為外部應用可以讀寫,可將讀寫模式設置為Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE
一般情況下,各個應用維護的數據都在一個特定的文件夾中,即上面所提到的/data/data/packageName/file(存在於手機存儲中),但手機內存畢竟有限,所以有些情況下,我們需要往SD卡中寫入數據文件,這其實和普通的java web 應用步驟一樣,都是先創建特針對特定目錄特定文件的輸出流,然後往輸出流中寫數據,這里要注意一個方法,就是獲取SD卡根目錄的方法,隨著Android系統不斷升級,SD卡的根目錄隨時都有可能改變,Android中得到SD卡根目錄的方法是
File sdCardDir = Environment.getExternalStorageDirectory();
然後就可以進行下面的步驟
File saveFile = new File(sdCardDir, 「yuchao.txt」);
FileOutputStream outStream = new FileOutputStream(saveFile);
outStream.write("Hi,I』m ChaoYu".getBytes());
outStream.close();
值得注意的是,在往SD卡中寫數據的時候,健壯的代碼必須考慮SD卡不存在或者防寫的情況,故在寫入之前,先做判斷
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
……
}
接著,我們來學習下我們的應用程序如何讀取文件中的數據,其實就是寫的逆向過程
若要讀取應用程序默認維護的文件(即/data/data/packageName/file目錄下的文件),首先得到文件輸入流
FileInputStream istream = this.context.openFileInput(「yuchao.txt」);
然後在內存中開辟一段緩沖區
byte[] buffer = new byte[1024];
然後創建一個位元組數組輸出流
ByteArrayOutputStream ostream = new ByteArrayOutputStream();
讀出來的數據首先放入緩沖區,滿了之後再寫到字元輸出流中
while((len=istream.read(buffer))!=-1){
ostream.write(buffer, 0, len);
}
最後關閉輸入流和輸出流
istream.close();
ostream.close();
將得到的內容以字元串的形式返回便得到了文件中的內容了,這里的流操作較多,故以一張圖片來說明,見圖1
return new String(ostream.toByteArray());
從SD卡中讀取數據與上述兩個步驟類似,故不再贅述,留給讀者自己思考
如在開發過程中進行SD卡地讀寫,切忌忘了加入許可權
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
至此,Android系統中有關文件數據的讀寫介紹完畢。
⑥ 如何在Android開發中對properties文件進行讀取
通過流文件來進行properties文件讀取的,要將文件放入到assets文件夾或者raw文件夾中.例如,我們這里有一個文件test.properties,如果放入了assets文件夾中,可以如下打開:
Propertiespro=newProperties();
InputStreamis=context.getAssets().open("test.properties");
pro.load(is);
如果放入到raw文件夾中,可以通過如下方式打開:
Java代碼
InputStreamis=context.getResources().openRawResource(R.raw.test);
Java代碼
Propertiespro=newProperties();
pro.load(FileLoad.class.getResourceAsStream("/assets/test.properties"));
讀寫函數分別如下:
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.util.Properties;
publicPropertiesloadConfig(Contextcontext,Stringfile){
Propertiesproperties=newProperties();
try{
FileInputStreams=newFileInputStream(file);
properties.load(s);
}catch(Exceptione){
e.printStackTrace();
}
returnproperties;
}
publicvoidsaveConfig(Contextcontext,Stringfile,Propertiesproperties){
try{
FileOutputStreams=newFileOutputStream(file,false);
properties.store(s,"");
}catch(Exceptione){
e.printStackTrace();
}
}
是不是發現什麼了?對了,這兩個函數與Android一點關系都沒有嘛。。
所以它們一樣可以在其他標準的java程序中被使用
在Android中,比起用純字元串讀寫並自行解析,或是用xml來保存配置,
Properties顯得更簡單和直觀,因為自行解析需要大量代碼,而xml的操作又遠不及Properties方便
使用方法如下:
寫入配置:
Propertiesprop=newProperties();
prop.put("prop1","abc");
prop.put("prop2",1);
prop.put("prop3",3.14);
saveConfig(this,"/sdcard/config.dat",prop);
讀取配置:
Propertiesprop=loadConfig(this,"/sdcard/config.dat");
Stringprop1=prop.get("prop1");
註:也可以用Context的openFileInput和openFileOutput方法來讀寫文件
此時文件將被保存在 /data/data/package_name/files下,並交由系統統一管理
用此方法讀寫文件時,不能為文件指定具體路徑。
在android中,當我們打包生成apk後,將apk放入到真正的手機上時,你會找不到test.properties文件,不要驚訝,android中的資源文件是只能存放在assets或者res的子目錄裡面的,程序包中的資源文件編譯後,是會丟失的!那麼是不是我們的第二種方法就沒法使用了?當然不是,經過實驗發現,將文件放入到assets文件夾里,而在傳入路徑裡面填入文件絕對路徑,還是可以引用該文件的.
⑦ Android中怎麼逐幀讀取視頻文件
MediaMetadataRetriever media = new MediaMetadataRetriever();
media.setDataSource(」視頻的絕對地址「);
Bitmap bitmap = media.getFrameAtTime();
image = (ImageView)this.findViewById(R.id.imageView1);
image.setImageBitmap(bitmap);
這個是獲取第一禎的代碼,可以參考下
⑧ android如何讀取sdcard所有文件,而不僅僅是sdcard目錄下的
File 還有一個方法是
String[]
list()
Returns an array of strings naming the files and directories in the
directory denoted by this abstract pathname.
「files and directories」 ,然後自己遞歸
⑨ android讀取大文件
風車廣告聯盟精準推廣廣告平台,200元即享十萬高效流量,30天內ip不重復。