編輯:關於Android編程
注意:不直接進行讀出是為了防止打文件操作對內存的消耗,所以用輸入流讀到硬盤上。
public String readFile(String fileName) throws Exception{
FileInputStream fis = context.openFileInput(fileName);
byte[] bytes = new byte[fis.available()];
fis.read(bytes);
fis.close();
return new String(bytes,"utf-8");
}當文件很大的時候,byte[]會占用很大的內存。
package cn.itcast.fileio.service;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.content.Context;
import android.os.Environment;
public class SdCardService {
private Context ctx;
public SdCardService(Context ctx) {
this.ctx = ctx;
}
/**
* 寫文件入skcard
*/
public void writeToSdCard(String fileName, String cont) {
try {
// 判斷是否有掛載sdcard
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
// 得到sdcar文件目錄
File dir = Environment.getExternalStorageDirectory();
File file = new File(dir, "itcast.txt");
FileOutputStream fos = new FileOutputStream(file);
fos.write(cont.getBytes());
fos.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
}
/**
* 讀SdCard中的文件
*/
public String readSdCard(String fileName) {
try {
// 判斷是否有掛載sdcard
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
// 得到sdcar文件目錄
File dir = Environment.getExternalStorageDirectory();
File file = new File(dir, "itcast.txt");
FileInputStream fis = new FileInputStream(file);
return readIs2String(fis);
}
}
catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 將輸入流數據讀取到輸出流當中
*/
private OutputStream readIs2Os(InputStream is ,OutputStream os){
try {
byte[] bytes = new byte[1024];
int length = 0 ;
while((length = is.read(bytes)) != -1){
os.write(bytes, 0, length);
}
is.close();
os.close();
}
catch (IOException e) {
e.printStackTrace();
}
return os ;
}
/**
* 將輸入流數據讀取到輸出流當中
*/
public byte[] readIs2Bytes(InputStream is){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
readIs2Os(is,baos);
return baos.toByteArray() ;
}
public String readIs2String(InputStream is){
try {
return new String(readIs2Bytes(is),"utf-8");
}
catch (Exception e) {
e.printStackTrace();
}
return null ;
}
public String readIs2String(String fileName){
try {
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File dir = Environment.getExternalStorageDirectory();
File file = new File(dir,fileName);
FileInputStream is = new FileInputStream(file);
return readIs2String(is);
}
}
catch (Exception e) {
e.printStackTrace();
}
return null ;
}
}
Android美女拼圖游戲
概述把圖片切分很多份,點擊交換拼成一張完整的;這樣關卡也很容易設計, 3*3 ; 4*4 ; 5*5 ; 6*6 ;一直下去效果加了個切換動畫,效果還是不錯的,其實游戲就
Android 手機屏幕適配解決辦法
0. 前言Android的屏幕適配,即使得某一元素在Android不同尺寸、不同分辨率的手機上具備相同的顯示效果,這個問題一直以來都是我們Android開發者不得不面對的
【Android開發—電商系列】(二):仿淘寶商品屬性標簽頁
一睹為快 需求 1.動態加載屬性,如尺碼,顏色,款式等 由於每件商品的屬性是不確定的,有的商品的屬性是顏色和尺碼,有的是口味,有的是大小,所以這些屬性不能直接
詳解Android App中的AsyncTask異步任務執行方式
基本概念AsyncTask:異步任務,從字面上來說,就是在我們的UI主線程運行的時候,異步的完成一些操作。AsyncTask允許我們的執行一個異步的任務在後台。我們可以將