0
点赞
收藏
分享

微信扫一扫

android下的读写权限




建立两个项目,一个是写数据_相关,一个是读数据_相关数据 ,

写数据_相关

                       读数据_相关数据作用:对上面的项目的文件进行读写操作,看看是否能成功


android下的读写权限_android




写数据_相关:



package com.sqf.writedata;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

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

//写数据

//私有文件
writeToLocal("private.txt",Context.MODE_PRIVATE);

//可读文件
writeToLocal("readable.txt", Context.MODE_WORLD_READABLE);

//可写文件
writeToLocal("writeable.txt", Context.MODE_WORLD_WRITEABLE);

//可读可写文件.
writeToLocal("readable_writeable.txt", Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);


}

private void writeToLocal(String fileName,int mode){

try {
// /data/data/包名/files/
//第一个参数是data/data/包名/files/下的文件名,di二是参数是权限
FileOutputStream fos = openFileOutput(fileName, mode);
fos.write(("第一个程序写的数据"+fileName).getBytes());
fos.flush();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}

}

}




读数据_相关数据:


package com.sqf.write;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;

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

public class MainActivity extends Activity implements OnClickListener {

//为什么不能动态获取? 因为这是另一个项目的地址
private String basicPath = "/data/data/com.sqf.writedata/files/";



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



findViewById(R.id.btn_read_private).setOnClickListener(this);
findViewById(R.id.btn_write_private).setOnClickListener(this);

findViewById(R.id.btn_read_readable).setOnClickListener(this);
findViewById(R.id.btn_write_readable).setOnClickListener(this);

findViewById(R.id.btn_read_writeable).setOnClickListener(this);
findViewById(R.id.btn_write_writeable).setOnClickListener(this);

findViewById(R.id.btn_read_readable_writeable).setOnClickListener(this);
findViewById(R.id.btn_write_readable_writeable).setOnClickListener(this);

}

/**
* 哪一个空间被点击,V对象就代表被点击的对象
* */
@Override
public void onClick(View v) {

switch(v.getId()){

case R.id.btn_read_private:
readFile("private.txt");
break;
case R.id.btn_write_private:
writeFile("private.txt");
break;

case R.id.btn_read_readable:
readFile("readable.txt");
break;
case R.id.btn_write_readable:
writeFile("readable.txt");
break;

case R.id.btn_read_writeable:
readFile("writeable.txt");
break;
case R.id.btn_write_writeable:
writeFile("writeable.txt");
break;

case R.id.btn_read_readable_writeable:
readFile("readable_writeable.txt");
break;
case R.id.btn_write_readable_writeable:
writeFile("readable_writeable.txt");
break;

}

}

private void readFile(String fileName){

try {
String path = basicPath + fileName;
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
String text = reader.readLine();
reader.close();

Toast.makeText(this, "读取成功", 0).show();
} catch (Exception e) {
Toast.makeText(this, "读取失败"+fileName, 0).show();
e.printStackTrace();
}
}


private void writeFile(String fileName){

try {
String path = basicPath + fileName;

FileOutputStream fos = new FileOutputStream(path);
fos.write("哈哈,被别人黑了".getBytes());
fos.flush();
fos.close();

Toast.makeText(this, "写入成功"+fileName, 0).show();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "写入失败", 0).show();
}
}


}



<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" >

<Button
android:id="@+id/btn_read_private"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="读私有数据"
/>
<Button
android:id="@+id/btn_write_private"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="写私有数据"
/>

<Button
android:id="@+id/btn_read_readable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="读可读数据"
/>
<Button
android:id="@+id/btn_write_readable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="写可读数据"
/>

<Button
android:id="@+id/btn_read_writeable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="读可写数据"
/>
<Button
android:id="@+id/btn_write_writeable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="写可写数据"
/>

<Button
android:id="@+id/btn_read_readable_writeable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="读可读可写数据"
/>
<Button
android:id="@+id/btn_write_readable_writeable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="写可读可写数据"
/>


</LinearLayout>



android下的读写权限_java_02



重点:

    利用chmod去修改权限

android下的读写权限_写数据_03

android下的读写权限_android_04


#ls -l  显示权限




android下的读写权限_java_05

666---把2--10看成二进制,r,w代表为1, 666代表2-4位,5-7位,8-10位都有读写权限

 


举报

相关推荐

0 条评论