精华内容
下载资源
问答
  • 安卓数据持久化

    2018-01-05 15:47:00
    //文件类型 void save(String string){ FileOutputStream out=null; BufferedWriter writer = null; try{ out = openFileOutput("data", Context.MODE_APPEND); ...
    //文件类型

    void save(String string){ FileOutputStream out=null; BufferedWriter writer = null; try{ out = openFileOutput("data", Context.MODE_APPEND); writer = new BufferedWriter(new OutputStreamWriter(out)); writer.write(string); }catch (IOException e) { e.printStackTrace(); }finally { try { if(writer!=null){ writer.close(); } }catch (IOException e){ e.printStackTrace(); } } } public String load(){ FileInputStream in =null; BufferedReader reader = null; StringBuilder content= new StringBuilder(); try{ in =openFileInput("data"); reader =new BufferedReader(new InputStreamReader(in)); String line=""; while ((line=reader.readLine())!=null){ content.append(line); } }catch (IOException e){ e.printStackTrace(); }finally { if(reader!=null){ try{ reader.close(); }catch (IOException e){ e.printStackTrace(); } } } return content.toString(); }

     

      SharedPreferences.Editor editor  = getSharedPreferences("data",MODE_PRIVATE).edit();
            editor.putString("name","tom");
            editor.putInt("age",28);
            editor.putBoolean("married",false);
            editor.apply();
    
            SharedPreferences pref= getSharedPreferences("data",MODE_PRIVATE);
            String name = pref.getString("name","");
            int age = pref.getInt("age",0);
            Boolean married = pref.getBoolean("married",false);
            Log.d(TAG, "onCreate: "+name);
            Log.d(TAG, "onCreate: "+age);
            Log.d(TAG, "onCreate: "+married);
    

      

    转载于:https://www.cnblogs.com/norm/p/8204991.html

    展开全文
  • 一、如何将数据保存到SD卡上面 Android一部分是内部存储空间ROM,可以理解这个ROM就是我们的Windows的电脑系统 盘,另外一部分就是外置存储空间,也就是我们的SD卡,他就类似于我们电脑的外插存储设备。 SD卡的路径...

    一、如何将数据保存到SD卡上面
    Android一部分是内部存储空间ROM,可以理解这个ROM就是我们的Windows的电脑系统
    盘,另外一部分就是外置存储空间,也就是我们的SD卡,他就类似于我们电脑的外插存储设备。
    SD卡的路径获取,就是和前面的一样,也是有API获取的;
    File externalStorageDiretory = Environment.getExternalStorageDirectory();
    Log.d(TAG,“Ext-FilePath ==” +externalStorageDiretory);
    怎么样知道手机有没有SD卡?
    我们通过一个API来判断这个SD卡是否已经挂载了
    else if (v == mCheckSdCardBtn){
    //点击的是检查是否有SD卡的按钮
    String state = Environment.getExternalStorageState();
    if (state.equals(Environment.MEDIA_MOUNTED)) {
    Log.d(TAG,“SD卡已经挂载成功,也是可用的!!!”);
    }else if (state.equals(Environment.MEDIA_UNMOUNTED)){
    Log.d(TAG,“SD卡已经删除了”);
    }
    当运行程序时出现如上错误,应该修改你的Environment.java文件中的
    VersionCode后面的值。
    !!!备注:运行一个项目程序时,如果无法运行,
    要在AndroidMainfest.xml文件中将该项目程序中的
    端口打开,关闭其他端
    口。!!!

    textview控件属性
    LinearLayout控件属性
    LinearLayout的排列方式有垂直和水平
    当LinearLayout的排列方式为vertical,也就是垂直方向时:
    LinearLayout里面的子view设置layout_gravity在垂直方向上的设定是无效的。并且子
    view设定的layout_gravity是在前两个的基础位置上来进行摆放的。
    当LinearLayout的排列方式为horizontal,也就是水平方向时:
    LinearLayout里面的子view设置layout_gravity在水平方向上的设定是无效的。并且子
    view设定的layout_gravity是在前两个的基础位置上来进行摆放的。
    权重需要记住的就是公式
    控件的实际大小 = 控件设定的大小 + (布局剩余的大小) * 布局的比例

    布局剩余的大小 = 父布局的大小 - 子布局大小之和
    RelativeLayout控件属性
    1.alignParent系列属性
    这一系列属性是根据父布局来定位,想跟哪对齐就把哪个属性设置成true;
    andoid:ayout_alignParentLeft=“true”,左对齐
    android:layout_alignParentRight=“true”,右对齐,
    android:layout_alignParentTop=“true”,顶端对齐,
    android:layout_alignParentBottom=“true”,底部对齐,
    android:layout_alignParentStart=“true”,起始位置对齐
    android:layout_alignParentEnd=“true”,结束为止对齐。
    2.center系列属性
    这一系列属性是直接指定组件位于中心。
    android:layout_centerInParent=“true” ,相对父容器中心对齐,
    android:layout_centerHorizontal=“true” ,相对父容器水平对齐,
    android:layout_centerVertical=“true”,相对父容器垂直对齐 。
    3.根据兄弟组件来定位
    android:layout_above="@id/tv",在指定组件的上方(不一定是正上方)
    android:layout_below="@id/tv",在指定组件的下方(不一定是正下方)
    android:layout_toLeftOf="@id/tv",在指定组件的左侧
    android:layout_toRightOf="@id/tv",在指定组件的右侧
    android:layout_alignTop="@id/tv",跟指定组件上边界对齐,
    android:layout_alignBottom="@id/tv",跟指定组件下边界对齐,
    android:layout_alignLeft="@id/tv",跟指定组件左边界对齐,
    android:layout_alignRight="@id/tv",跟指定组件右边界对齐。
    获取SD卡的可用空间
    作者: 3496348218@qq.com
    具体实现方式。。。

    else if (v == mGetFreeSizeBtn){
    File exFile1 = Environment.getExternalStorageDirectory();
    Log.d(TAG,“Ext-FilePath ==” +exFile1);
    long freeSpace = exFile1.getFreeSpace();
    //把long类型转换为直观的空间大小,比如说多少Mb。
    //下面的Formatter包,记得导入的是 import android.text.format.Formatter;
    String sizeText = Formatter.formatFileSize(this,freeSpace);
    Log.d(TAG,"free size(可用空间) == "+sizeText);
    当看到:D/SDCardDemo: Ext-FilePath ==/storage/emulated/0
    D/SDCardDemo: Ext-FilePath ==/storage/emulated/0
    free size(可用空间) == 5.71 GB
    即表示按钮功能实现成功。。
    SharePreference
    作者: 3496348218@qq.com
    SharePreference使用步骤

    1. 第一步,拿到这个SharePreference
      mSharedPreferences = this.getSharedPreferences(“setting_info”, MODE_PRIVATE);
      //这里面的this是指的是上下文Context,在视频中我们是在Activity里面所以直接使用this,因为
      这个Avtivity间接地结成了Context。
      2.第二步,进入编辑模式
      SharedPreferences.Editor edit = mSharedPreferences.edit();
      //拿到这个编辑器
      3第三步,保存数据
      //保存要保存的数据,类型有String,StringSet,int,boolean等等
      edit.putBoolean(“state”,isChecked);
      4.第四步,提交编辑器
      edit.commit();
      这四个步骤,就可以把数据保存到SharePreference里了。
    展开全文
  • 安卓数据持久化工具类总结

    千次阅读 2015-03-05 08:34:58
    程序猿是最懒的生物,开发中从不重复造轮子,实际开发中数据吃就化是必然要处理的一个问题,先总结了几个除处理sqlite外的几个工具类,因为sqlite可以直接用orm,持久化数据有I/O,SharedPreference等等方式。...

    程序猿是最懒的生物,开发中从不重复造轮子,实际开发中数据吃就化是必然要处理的一个问题,先总结了几个除处理sqlite外的几个工具类,因为sqlite可以直接用orm,持久化数据有I/O,SharedPreference等等方式。

    外置储存卡

    package cn.edu.zafu.utils;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    
    import android.os.Environment;
    
    /**
     * 外部存儲卡工具类
     * 需要添加权限 
     * android.permission.WRITE_EXTERNAL_STORAGE
     * android.permission.MOUNT_UNMOUNT_FILESYSTEMS
     * 
     * @author lizhangqu
     * @version 1.0
     * 
     */
    public class ExternalStorageUtil {
    
    	/**
    	 * 是否可写
    	 * 
    	 * @return 可写性
    	 */
    	public static boolean isExternalStorageWritable() {
    		String state = Environment.getExternalStorageState();
    		if (Environment.MEDIA_MOUNTED.equals(state)) {
    			return true;
    		}
    		return false;
    	}
    
    	/**
    	 * 是否可读
    	 * 
    	 * @return 可读性
    	 */
    	public static boolean isExternalStorageReadable() {
    		String state = Environment.getExternalStorageState();
    		if (Environment.MEDIA_MOUNTED.equals(state)
    				|| Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
    			return true;
    		}
    		return false;
    	}
    
    	/**
    	 * 获得根路径
    	 * 
    	 * @return 外置内存卡根路径
    	 */
    	public static String getExternalStoragePath() {
    		if (isExternalStorageWritable())
    			return Environment.getExternalStorageDirectory().getAbsolutePath();
    		else
    			return null;
    	}
    
    	/**
    	 * 获得下载目录路径
    	 * 
    	 * @return 外置内存卡下载路径
    	 */
    	public static String getExternalDownloadPath() {
    		return Environment.getExternalStoragePublicDirectory(
    				Environment.DIRECTORY_DOWNLOADS).getAbsolutePath();
    	}
    
    	/**
    	 * 向根路径写文件
    	 * 
    	 * @param fileName 文件名
    	 * @param content 上下文
    	 * @return 是否写入成功
    	 */
    	public static boolean write(String fileName, String content) {
    		return write("/", fileName, content);
    	}
    
    	/**
    	 * 向根目录写字节
    	 * 
    	 * @param fileName 文件名
    	 * @param bytes 文件字节数组
    	 * @return 是否写入成功
    	 */
    	public static boolean writeBytes(String fileName, byte[] bytes) {
    		return writeBytes("/", fileName, bytes);
    	}
    
    	/**
    	 * 向指定目录的文件中写入字符串,路径以/开始/结尾
    	 * 
    	 * @param path 相对于根路径的路径,路径以/开始,以/结尾
    	 * @param fileName 文件名
    	 * @param content 文件内容
    	 * @return 是否写入成功
    	 */
    	public static boolean write(String path, String fileName, String content) {
    		return writeBytes(path, fileName, content.getBytes());
    	}
    
    	/**
    	 * 向指定目录的文件写入字节数组,路径以/开始/结尾
    	 * 
    	 * @param path 相对于根路径的路径,路径以/开始,以/结尾
    	 * @param fileName 文件名
    	 * @param bytes 字节数组
    	 * @return
    	 */
    	public static boolean writeBytes(String path, String fileName, byte bytes[]) {
    		boolean flag = false;
    		if (!path.equals("/")) {
    			File dir = new File(getExternalStoragePath() + path);
    			if (!dir.exists()) {
    				if (!(dir.mkdir() || dir.isDirectory())) {
    					// 文件目录创建失败或者不是一个目录
    					return false;
    				}
    			}
    		}
    		File file = new File(getExternalStoragePath() + path + fileName);
    		FileOutputStream fos = null;
    		try {
    			fos = new FileOutputStream(file, false);
    			fos.write(bytes);
    			flag = true;
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			if (fos != null) {
    				try {
    					fos.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    
    		}
    		return flag;
    	}
    
    	/**
    	 * 从根路径读字节
    	 * 
    	 * @param fileName 文件名
    	 * @return 字节数组
    	 */
    	public static byte[] readBytes(String fileName) {
    		return readBytes("/", fileName);
    	}
    
    	/**
    	 * 从指定目录读字节,路径以/开始/结尾
    	 * 
    	 * @param path 相对于根路径的路径,路径以/开始,以/结尾
    	 * @param fileName 文件名
    	 * @return 字节数组
    	 */
    	public static byte[] readBytes(String path, String fileName) {
    		File file = new File(getExternalStoragePath() + path + fileName);
    		if (!file.isFile()) {
    			return null;
    		} else {
    			FileInputStream fis = null;
    			try {
    				fis = new FileInputStream(file);
    				int length = fis.available();
    				byte[] buffer = new byte[length];
    				fis.read(buffer);
    				return buffer;
    			} catch (FileNotFoundException e) {
    				e.printStackTrace();
    			} catch (IOException e) {
    				e.printStackTrace();
    			} finally {
    				if (fis != null) {
    					try {
    						fis.close();
    					} catch (IOException e) {
    						e.printStackTrace();
    					}
    				}
    			}
    			return null;
    		}
    
    	}
    
    	/**
    	 * 从根目录读文本
    	 * 
    	 * @param fileName 文件名
    	 * @return 字符串
    	 */
    	public static String read(String fileName) {
    		return read("/", fileName);
    	}
    
    	/**
    	 * 从指定目录读文本,路径以/开始/结尾
    	 * 
    	 * @param path 相对于根路径的路径,路径以/开始,以/结尾
    	 * @param fileName 文件名
    	 * @return 字符串
    	 */
    	public static String read(String path, String fileName) {
    		try {
    			byte[] readBytes = readBytes(path, fileName);
    			if (readBytes == null) {
    				return null;
    			}
    			return new String(readBytes, "UTF-8");
    		} catch (UnsupportedEncodingException e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    
    	/**
    	 * 从根目录删除
    	 * 
    	 * @param fileName 文件名
    	 * @return 是否删除成功
    	 */
    	public static boolean delete(String fileName) {
    		return delete("/", fileName);
    	}
    
    	/**
    	 * 从指定目录删除,路径以/开始/结尾
    	 * 
    	 * @param path 相对于根路径的路径,路径以/开始,以/结尾
    	 * @param fileName 文件名
    	 * @return 是否删除成功
    	 */
    	public static boolean delete(String path, String fileName) {
    		File file = new File(getExternalStoragePath() + path + fileName);
    		if (file.exists())
    			return file.delete();
    		else
    			return true;
    	}
    }
    

    内置储存卡

    package cn.edu.zafu.utils;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    
    import android.content.Context;
    
    /**
     * 內部存儲卡工具类
     * 
     * @author lizhangqu
     * @version 1.0
     */
    public class InternalStorageUtil {
    
    	/**
    	 * 在原文件后追加内容
    	 * 
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @param content 追加的文本
    	 * @return 是否追加成功
    	 */
    	public static boolean append(Context context, String fileName,
    			String content) {
    		return writeBytes(context, fileName, content.getBytes(), true);
    	}
    
    	/**
    	 * 写入文件,文件存在则覆盖
    	 * 
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @param content 写入的文本
    	 * @return 是否写入成功
    	 */
    	public static boolean write(Context context, String fileName, String content) {
    		return writeBytes(context, fileName, content.getBytes(), false);
    	}
    
    	/**
    	 * 写入字节
    	 * 
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @param content 写入的字节
    	 * @return 是否写入成功
    	 */
    	public static boolean writeBytes(Context context, String fileName,
    			byte[] content) {
    		return writeBytes(context, fileName, content, false);
    	}
    
    	/**
    	 * 写入文件,文件存在时根据参数isAppend判断是否覆盖
    	 * 
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @param content 写入的字节
    	 * @param isAppend 是否追加
    	 * @return 是否写入成功
    	 */
    	public static boolean writeBytes(Context context, String fileName,
    			byte[] content, boolean isAppend) {
    		FileOutputStream fout = null;
    		boolean flag = false;
    		try {
    			if (isAppend) {
    				fout = context.openFileOutput(fileName, Context.MODE_APPEND);
    			} else {
    
    				fout = context.openFileOutput(fileName, Context.MODE_PRIVATE);
    			}
    			fout.write(content);
    			flag = true;
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				if (fout != null) {
    					fout.close();
    					fout = null;
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		return flag;
    	}
    
    	/**
    	 * 读取文件
    	 * 
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @return 文件内容的字符串
    	 */
    	public static String read(Context context, String fileName) {
    		byte[] buffer = readBytes(context, fileName);
    		String result=null;
    		try {
    			result = new String(buffer, "UTF-8");
    		} catch (UnsupportedEncodingException e) {
    			e.printStackTrace();
    		}
    		return result;
    	}
    	/**
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @return 字节数组
    	 */
    	public static byte[] readBytes(Context context, String fileName) {
    		FileInputStream fin = null;
    		byte[] buffer = null;
    		try {
    			fin = context.openFileInput(fileName);
    			int length = fin.available();
    			buffer = new byte[length];
    			fin.read(buffer);
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				if (fin != null) {
    					fin.close();
    					fin = null;
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		return buffer;
    	}
    
    	/**
    	 * 清除所有文件,当有一个文件未清除时返回false
    	 * 
    	 * @param context 上下文
    	 * @return 是否清楚成功
    	 */
    	public static boolean clear(Context context) {
    		boolean flag = true;
    		String[] files = context.fileList();
    		for (String fileName : files) {
    			boolean result = context.deleteFile(fileName);
    			if (result == false) {
    				flag = false;
    			}
    		}
    		return flag;
    	}
    
    	/**
    	 * 根据文件名清除文件
    	 * 
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @return 是否删除成功
    	 */
    	public static boolean delete(Context context, String fileName) {
    		return context.deleteFile(fileName);
    	}
    
    	/**
    	 * 返回内部存储的绝对路径
    	 * 
    	 * @param context 上下文
    	 * @return app内置文件夹路径
    	 */
    	public static String getFileDir(Context context) {
    		File filesDir = context.getFilesDir();
    		return filesDir.getAbsolutePath();
    	}
    }
    
    资源文件的读取

    package cn.edu.zafu.utils;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.UnsupportedEncodingException;
    
    import android.content.Context;
    
    /**
     * assert资源的读取
     * 
     * @author lizhangqu
     * @version 1.0
     */
    public class ResouceFileUtil {
    	/**
    	 * 从assert文件夹下读取文本资源
    	 * 
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @return 文件内容字符串
    	 */
    	public static String readStringFromAssert(Context context, String fileName) {
    		String result = null;
    		byte[] buffer = readBytesFromAssert(context, fileName);
    		try {
    			result = new String(buffer, "UTF-8");
    		} catch (UnsupportedEncodingException e) {
    			e.printStackTrace();
    		}
    		return result;
    	}
    
    	/**
    	 * 从raw文件夹下读取文本资源
    	 * 
    	 * @param context 上下文
    	 * @param rawId raw资源id
    	 * @return 文件内容字符串
    	 */
    	public static String readStringFromRaw(Context context, int rawId) {
    		String result = null;
    		byte[] buffer = readBytesFromRaw(context, rawId);
    		try {
    			result = new String(buffer, "UTF-8");
    		} catch (UnsupportedEncodingException e) {
    			e.printStackTrace();
    		}
    		return result;
    	}
    
    	/**
    	 * 从assert文件夹下读取文件到字节数组
    	 * 
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @return 文件字节数组
    	 */
    	public static byte[] readBytesFromAssert(Context context, String fileName) {
    		InputStream is = null;
    		byte[] buffer = null;
    		try {
    			is = context.getAssets().open(fileName);
    			int size = is.available();
    			buffer = new byte[size];
    			is.read(buffer);
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			if (is != null) {
    				try {
    					is.close();
    					is = null;
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    
    		return buffer;
    	}
    
    	/**
    	 * 从raw文件夹下读取文件到字节数组
    	 * 
    	 * @param context 上下文
    	 * @param rawId raw资源id
    	 * @return 文件字节数组
    	 */
    	public static byte[] readBytesFromRaw(Context context, int rawId) {
    		InputStream is = null;
    		byte[] buffer = null;
    		try {
    			is = context.getResources().openRawResource(rawId);
    			int size = is.available();
    			buffer = new byte[size];
    			is.read(buffer);
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			if (is != null) {
    				try {
    					is.close();
    					is = null;
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    		return buffer;
    	}
    }
    


    SharedPreference的操作

    package cn.edu.zafu.utils;
    
    import android.content.Context;
    import android.content.SharedPreferences;
    
    /**
     * SharedPreference方式持久化数据的工具类
     * 
     * @author lizhangqu
     * @version 1.0
     */
    public class SharedPreferenceUtil {
    
    	/**
    	 * 保存键值对
    	 * 
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @param key 键
    	 * @param value 值
    	 * @return 是否保存成功
    	 */
    	public static boolean set(Context context, String fileName, String key,
    			String value) {
    		SharedPreferences sharedPreferences = context.getSharedPreferences(
    				fileName, Context.MODE_PRIVATE);
    		SharedPreferences.Editor editor = sharedPreferences.edit();
    		editor.putString(key, value);
    		return editor.commit();
    	}
    
    	/**
    	 * 获得键对应的值,如果没有则返回""
    	 * 
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @param key 键
    	 * @return 值,没有则返回""
    	 */
    	public static String get(Context context, String fileName, String key) {
    		return get(context, fileName, key, "");
    	}
    
    	/**
    	 * 获得键对应的值,如果没有则返回defaultValue
    	 * 
    	 * @param context 上下文
    	 * @param fileName 文件名
     	 * @param key 键
    	 * @param defaultValue 默认值
    	 * @return 值,没有则返回defaultValue
    	 */
    	public static String get(Context context, String fileName, String key,
    			String defaultValue) {
    		SharedPreferences sharedPreferences = context.getSharedPreferences(
    				fileName, Context.MODE_PRIVATE);
    		String value = sharedPreferences.getString(key, defaultValue);// 第二个参数为默认值
    		return value;
    	}
    
    	/**
    	 * 移除一项
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @param key 键
    	 * @return 是否移除成功
    	 */
    	public static boolean remove(Context context, String fileName, String key) {
    		SharedPreferences sharedPreferences = context.getSharedPreferences(
    				fileName, Context.MODE_PRIVATE);
    		SharedPreferences.Editor editor = sharedPreferences.edit();
    		editor.remove(key);
    		return editor.commit();
    
    	}
    	
    	/**
    	 * 清除文件内容
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @return 是否清除成功
    	 */
    	public static boolean clear(Context context, String fileName) {
    		SharedPreferences sharedPreferences = context.getSharedPreferences(
    				fileName, Context.MODE_PRIVATE);
    		SharedPreferences.Editor editor = sharedPreferences.edit();
    		editor.clear();
    		return editor.commit();
    
    	}
    	
    	/**
    	 * 某一项是否存在
    	 * @param context 上下文
    	 * @param fileName 文件名
    	 * @param key 键
    	 * @return 该键对应的值是否存在
    	 */
    	public static boolean contatins(Context context, String fileName,String key) {
    		SharedPreferences sharedPreferences = context.getSharedPreferences(
    				fileName, Context.MODE_PRIVATE);
    		return sharedPreferences.contains(key);
    		
    
    	}
    
    }
    


    展开全文
  • 从github下面下载ormlite源码后觉得好复杂,看起来也不方便,于是自己做了个ormlite的实用案例 这个是添加银行卡实例,用的是okhttp3访问网络,大家可以看看,综合性比较强,可以作为实际开发项目参考案例的demo,...

    从github下面下载ormlite源码后觉得好复杂,看起来也不方便,于是自己做了个ormlite的实用案例 这个是添加银行卡实例,用的是okhttp3访问网络,大家可以看看,综合性比较强,可以作为实际开发项目参考案例的demo,这里用的是阿里的接口,大家可以选择其他的接口,这是我综合公司的项目做的案例已经上传github大家可以去下载源码,github网址:https://github.com/JackHuang1992/ormLiteDemo,小伙伴们赶紧去下载吧


    展开全文
  • Android系统中主要提供了三种方式用于简单的实现数据持久化功能: 文件存储(手机自带的内存)、SharedPreferences存储以及数据库存储 当然还可以用sd卡存储 读入写出 下面是疯狂java讲义中的关于IO流的一些补充,回忆...
  • 今天刚简单学习了安卓数据持久化, 现在梳理一下. 一:文件存储 安卓中的文件存储就是使用了Context类中提供的openFileOutput()和openFileInput()分别对应着文件的持久化以及反持久化. 其中,调用openFileOutPut()方法...
  • 数据持久化技术文件存储SharedPreferences存储数据库存储 文件存储 openFileOutput SharedPreferences存储 只能存储键值对 SharedPreferences.Editor editor=getSharedPreferences("data",MODE_PRIVATE)....
  • 此篇文章是:安卓开发数据持久化技术——SharedPreference存储。 废话不多说,直接上代码。package com.hsg.mydemo;import android.content.SharedPreferences; import android.support.v7.app.AppCompatActivity;
  • 此篇文章是:安卓开发数据持久化技术——内部文件存储。 废话不多说,直接上代码。/** * ****************************数据持久化技术一******************************** * 内部文件存储读写,适用于存储一些...
  • 首先定义json的数据结构 public class Json_Data { public int Id; public string PlayerName; public Skill_Data[] SkillList; } 然后保存到一个列表里 public class Data { public List<Json_Data>...
  • 开篇唠嗑 昨天本来想早睡的,但是舍友叫着玩吃鸡,玩着玩着就玩到很晚了,主要是菜,但是又想着不吃一把鸡不想下线,结果最后玩到了四点半还没吃吃鸡,不得不耻辱退出。...安卓系统主要提供了3种数据持久化
  • 数据持久化 1.SharedPreferences (不推荐使用) Android中自带的轻量级存储类,适合存储一些零散的小数据。 是以键值对的方式以xml格式存储数据的,这也是其效率低的原因之一。 存储路径为 data/data/程序包...
  • Android 数据持久化

    2016-12-13 11:41:19
     在讨论数据持久化技术之前我们先了解几个概念? 什么是瞬时数据:存储在内存当中,有可能会因为程序的关闭或其他原因导致内存被收回而丢失的数据...安卓提供了三种方式用于简单的数据持久化功能:文件储存,Sha
  • 数据持久化技术

    2015-11-22 00:14:00
    数据储存方案,持久化即技术 什么是瞬时数据:存储在内存当中,有可能会因为程序的关闭或其他原因导致内存被收回而丢失的数据。...安卓提供了三种方式用于简单的数据持久化功能 文件储存,SharedPrefer...
  • 应用中要做数据持久化,跟javaBean进行序列化之间有什么联系? 再就是:应用关闭之后,断网,再次开启的时候还是会显示之前关闭之前已经显示出来了的数据.跟序列化数据Bean又有什么联系
  • 安卓性能优化之持久化配置数据-MMKV

    千次阅读 2019-04-30 10:52:44
    精简数据,以最少的数据量表示最多的信息,减少数据大小; 增量更新,避免每次进行相对增量来说大数据量的全量写入 性能优化目的: 提升程序的稳定性:内存泄漏导致oom,大量小对象导致内存碎片和内存抖动...
  • 在讨论数据持久化技术之前我们先了解几个概念? 什么是瞬时数据:存储在内存当中,有可能会因为程序的关闭或其他原因导致内存被收回而丢失的数据...安卓提供了三种方式用于简单的数据持久化功能:文件储存,SharedP...
  • 首先介绍数据持久化:指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失。保存在内存中的数据为瞬时数据,而保存在存储设备中的数据处于持久状态。而持久化技术...
  • 安卓应用程序数据持久化方法 1、文件存储 2、SharedPreference 3、SQLite 数据库 开源库 LitePal
  • 安卓文件持久化技术, 1、文件存储 (1)在Android的持久化技术中,文件存储是最基本的一种数据存储方式。 (2)对存储的内容部做任何处理,原样存储到文件中。 (3)Context提供了文件写入与读取的方法,...
  • 安卓存储目录分为 内部存储 和 外部存储。 内部存储的目录为 /data/ 目录, 其中 内部存储 在未root的手机上是无法查看的。  要了解APP的存储目录结构,我们先从 app开始安装时谈起。 一、apk在安装时,涉及到...
  • 对于大部分安卓或者IOS开发人员来说,App的数据持久化可能是很平常的一个话题。但是对于Web开发人员来说,可能紧紧意味着localStorage和sessionStorage。 Web开发 localStorage和sessionStorage localStorage和...
  • SharedPreferences 是安卓永久保存数据的方式之一,数据不会随着 Activity 的销毁、程序的退出而丢失。SharedPreferences 储存数据的方式为 key - value 形式,可以保存简单的数据。 例子 如下是一个封装好的储存 ...
  • Flutter的数据持久化 一起从0开始学习Flutter! 在移动端存储数据我们有多种方法有sharePreferences,SQLite,本地文件,网络存储这几种方法,后面的两种在前面的文章中有部分介绍,这里不多做说明,这篇主要是跟大家...
  • 对于大部分安卓或者IOS开发人员来说,App的数据持久化可能是很平常的一个话题。但是对于Web开发人员来说,可能紧紧意味着localStorage和sessionStorage。Web开发localStorage和sessionStoragelocalStorage和...
  • react-native.jpeg因为之前是做iOS开发的,没使用过安卓的存储方式,所以本文章只写利用JS来实现的方法。文章中如果有不清楚或者不对的地方,欢迎再评论区留言或者私信给我或者加QQ群397885169讨论。1....

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 159
精华内容 63
关键字:

安卓数据持久化