文件访问的权限

被访问的文件中:

布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="请输入用户名" />

    <EditText
        android:id="@+id/et_usename"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="请输入密码" />

    <EditText
        android:inputType="textPassword"
        android:id="@+id/password"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <CheckBox
            android:id="@+id/cb_remenber_passward"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="记住密码" />

        <Button
            android:layout_alignParentRight="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="login"
            android:text="登陆" >
        </Button>
    </RelativeLayout>

</LinearLayout>
   类文件:MainActivity
package com.example.shenchao2;

import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Toast;

import com.example.shenchao2.service.LoginService;

public class MainActivity extends Activity {
	private static final String TAG = "MainActivity";
	private EditText ed_usename;
	private EditText ed_password;
	private CheckBox cb;
	private RadioGroup rg_mode;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		ed_usename = (EditText) this.findViewById(R.id.et_usename);
		ed_password = (EditText) this.findViewById(R.id.password);
		cb = (CheckBox) this.findViewById(R.id.cb_remenber_passward);
		rg_mode = (RadioGroup) findViewById(R.id.rg_mode);
	}

	/**
	 * 登陆成功
	 */
	public void login(View vew) {
		String usename = ed_usename.getText().toString().trim();
		String password = ed_password.getText().toString().trim();// 将其内容拿出来
		// 判断是否为空
		if (TextUtils.isEmpty(usename) || TextUtils.isEmpty(password)) {
			Toast.makeText(this, "不能为空", Toast.LENGTH_LONG).show();
		} else {
			// 登陆,是否保存密码
			if (cb.isChecked()) {
				// 保存用户密码
				// Log.i(TAG, "需要保存用户密码!");// 日志文件信息
				boolean result = false;
				int id = rg_mode.getCheckedRadioButtonId(); // 拿到当前的RadioButton的id
				switch (id) {
				case R.id.rd_private:
					result = LoginService.saveUseInfo(this, usename, password,
							1);
					break;
				case R.id.rd_read:
					result = LoginService.saveUseInfo(this, usename, password,
							2);
					break;
				case R.id.rd_write:
					result = LoginService.saveUseInfo(this, usename, password,
							3);
					break;
				case R.id.rd_public:
					result = LoginService.saveUseInfo(this, usename, password,
							4);
					break;

				default:
					break;
				}
				if (result) {
					Toast.makeText(this, "好高兴,保存成功!", Toast.LENGTH_LONG).show();
				}
			}
			// 登陆发送消到服务器,服务器验证是否正确
			if ("zhangsan".equals(usename) && "123".equals(password)) {
				Toast.makeText(this, "登陆成功!", Toast.LENGTH_LONG).show();
			} else {
				Toast.makeText(this, "登陆失败!", Toast.LENGTH_LONG).show();
			}
		}
	}
}

LoginService:

package com.example.shenchao2.service;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

import android.content.Context;

public class LoginService {

	public static boolean saveUseInfo(Context context, String usename,
			String password, int mode) {
		try {
			// 文件名、以什么方式创建出来文件
			FileOutputStream fos = null;
			switch (mode) {
			case 1:
				fos = context.openFileOutput("private.txt",
						Context.MODE_PRIVATE);
				break;
			case 2:
				fos = context.openFileOutput("read.txt",
						Context.MODE_WORLD_READABLE);
				break;
			case 3:
				fos = context.openFileOutput("write.txt",
						Context.MODE_WORLD_WRITEABLE);
				break;
			case 4:
				fos = context.openFileOutput("public.txt",
						Context.MODE_WORLD_READABLE
								+ Context.MODE_WORLD_WRITEABLE);
				break;
			default:
				break;
			}
			// 将文件写入
			fos.write((usename + "##" + password).getBytes());// getBytes()是将一个字符串转化为一个字节数组。
			fos.close();
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}
}

在访问的程序中:

布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:onClick="readPrivate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="读私有文件" />
    <Button
        android:onClick="writePrivate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="写私有文件" />
    <Button
        android:onClick="readdefault"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="读默认文件" />
    <Button
        android:onClick="writedefault"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="写默认文件" />

     <Button
        android:onClick="readreadable"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="读可读文件" />
    <Button
        android:onClick="writereadable"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="写可读文件" />
</LinearLayout>

类文件:

package com.example.other;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	public void readPrivate(View view) {
		try {
			File file = new File(
					"/data/data/com.example.shenchao2/files/private.txt");
			FileInputStream fis = new FileInputStream(file);
			BufferedReader br = new BufferedReader(new InputStreamReader(fis));
			String result = br.readLine();
			Toast.makeText(this, result, Toast.LENGTH_LONG).show();
		} catch (Exception e) {
			e.printStackTrace();
			Toast.makeText(this, "读取私有文件失败!", Toast.LENGTH_LONG).show();
		}
	}

	public void writePrivate(View view) {
		try {
			File file = new File(
					"/data/data/com.example.henchao2/files/private.txt");
			FileOutputStream fos = new FileOutputStream(file);
			fos.write("haha".getBytes());
			fos.close();
		} catch (Exception e) {
			e.printStackTrace();
			Toast.makeText(this, "写私有文件失败!", Toast.LENGTH_LONG).show();
		}
	}
	
	public void readdefault(View view) {
		try {
			File file = new File(
					"/data/data/com.example.henchao2/files/info.txt");
			FileInputStream fis = new FileInputStream(file);
			BufferedReader br = new BufferedReader(new InputStreamReader(fis));
			String result = br.readLine();
			Toast.makeText(this, result, Toast.LENGTH_LONG).show();
		} catch (Exception e) {
			e.printStackTrace();
			Toast.makeText(this, "读取默认文件失败!", Toast.LENGTH_LONG).show();
		}
	}

	public void writedefault(View view) {
		try {
			File file = new File(
					"/data/data/com.example.shenchao2/files/info.txt");
			FileOutputStream fos = new FileOutputStream(file);
			fos.write("haha".getBytes());
			fos.close();
		} catch (Exception e) {
			e.printStackTrace();
			Toast.makeText(this, "写默认文件失败!", Toast.LENGTH_LONG).show();
		}
	}
	
	public void readreadable(View view) {
		try {
			File file = new File(
					"/data/data/com.example.shenchao2/files/read.txt");
			FileInputStream fis = new FileInputStream(file);
			BufferedReader br = new BufferedReader(new InputStreamReader(fis));
			String result = br.readLine();
			Toast.makeText(this, result, Toast.LENGTH_LONG).show();
		} catch (Exception e) {
			e.printStackTrace();
			Toast.makeText(this, "读取默认文件失败!", Toast.LENGTH_LONG).show();
		}
	}

	public void writereadable(View view) {
		try {
			File file = new File(
					"/data/data/com.example.shenchao2/files/read.txt");
			FileOutputStream fos = new FileOutputStream(file);
			fos.write("haha".getBytes());
			fos.close();
		} catch (Exception e) {
			e.printStackTrace();
			Toast.makeText(this, "写默认文件失败!", Toast.LENGTH_LONG).show();
		}
	}
}
   查看权限:在cmd中写入:

   adb shell    cd/data/data/   ls -l  显示权限   

    cd com.example.shenchao2    cd files(查看当前的权限)    ls -l   chmod   666 Private.txt(修改文件的权限)   ls -l(权限变了)

   

资料图片:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值