首页 > 其他分享 >android下的读写权限

android下的读写权限

时间:2023-02-06 18:35:52浏览次数:43  
标签:btn layout 读写 readable import android 权限 id




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

写数据_相关

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


android下的读写权限_java




写数据_相关:



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下的读写权限_写数据_02



重点:

    利用chmod去修改权限

android下的读写权限_java_03

android下的读写权限_android_04


#ls -l  显示权限




android下的读写权限_java_05

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

 


标签:btn,layout,读写,readable,import,android,权限,id
From: https://blog.51cto.com/u_15955675/6040204

相关文章

  • 单元测试1(Androidf)
    步骤:incrment)。 --incrmentMathUtils类中的main方法直接测试,会有异常,如下:Ifyouwouldliketosubmitabugreport,pleasevisit:​​​  http://java.sun.co......
  • adb的常用命令(android debud bridge)
    android调试桥:adb命令使用需要在系统环境遍历中path中追加adb.exe的完整路径D:\IDE\adt-bundle-windows-x86-20130729\sdk\platform-toolsadbdevices列出所有的设备 ......
  • Android中的显示单位
     px(pixels)像素    一般HVGA代表320x480像素,这个用的比较多。 dip或dp(deviceindependentpixels)设备独立像素  这个和设备硬......
  • 单元测试2(android)
    在另一个Junit中测试工程的某一个方法。在Junit中的测试(JunitTest)MathUtils类中的incrment方法这时候,清单文件已经帮你配置好了<?xmlversion="1.0"encoding="utf-8"?><......
  • Android 测试
    黑盒测试:是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。白盒测试:又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。......
  • error:This Android SDK requires Andr...ate ADT to the latest version.
    这样的问题很好解决,一个升级ADT到指定版本或以上,另一个简单的办法是调低SDK版本找到android-sdk-windows\tools\lib下的plugin.prop文件修改其中的版本号,改为与所安装的AT......
  • 禁用root账户登录,新建用户权限与root一致
    1、使用管理员登录系统2、修改文件vi/etc/passwd修改root❌0:0:root:/root:/bin/bash为root❌0:0:root:/root:/sbin/nologin3、新建用户adduseradmin4、修改......
  • Android 电话拨号
    以下案例模拟android电话拨号器的实现AndroidManifest.xml清单列表:<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://sche......
  • Android Activity之间跳转相互传值
    Intent用法实例:1.无参数Activity跳转Intentit=newIntent(Activity.Main.this,Activity2.class);startActivity(it);2.向下一个Activity传递数......
  • Android控件之EditView探究
    EditView类继承自TextView类,EditView与TextView最大的不同就是用户可以对EditView控件进行编辑,同时还可以为EditView控件设置监听器,用来判断用户的输......