求指点迷津!!点击登录,将数据存入文件中

Larry Chow 2019-11-14 10:46:36
感觉没啥错的(可能是太菜了)
显示未成功创建,过程中未报错,
控制台记录
D/: 用戶名:111111  ,   密碼:222222
filesDir==/data/data/com.example.classtask/files
D/: file==/mounted/data/data/com.example.classtask/files/info.txt
写入失败!!!
V/RenderScript: 0xaec6b400 Launching thread(s), CPUs 2

事先已经给挂载和写入的权限了
 <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

源代码:


public class QQTest extends AppCompatActivity {
private EditText user_id;
private EditText user_password;
private Button login;

private String uid;
private String upassword;
//初始化
void Init() {
user_id = findViewById(R.id.user_id);
user_password = findViewById(R.id.user_password);
login = findViewById(R.id.login);
}

void SaveData() {
//文字工具检查是否为空
if (TextUtils.isEmpty(user_id.getText()) || TextUtils.isEmpty(user_password.getText())) {
Toast.makeText(QQTest.this, "请将数据补充完整", Toast.LENGTH_SHORT).show();
} else {
//获取输入框内容
uid = user_id.getText().toString();
upassword = user_password.getText().toString();
Log.d("", "用戶名:" + uid + " , 密碼:" + upassword);
Save(uid, upassword);
}
}


private void Save(String uid, String upassword) {
//获得路径
File FilePath = this.getFilesDir();
Log.d("", "filesDir==" + FilePath.toString());
//获得绝对路径
String FileName =FilePath+ "/info.txt";
File info = new File(FileName);
Log.d("", "file==" + info.getAbsolutePath());
try {
//是否创建成功
if (info.exists()) {
Log.d("", "info.txt创建成功!");
//写入数据
FileOutputStream fos = new FileOutputStream(info);
fos.write((uid + "***" + upassword).getBytes());

fos.close();
Log.d("", "info.txt写入成功!");
Toast.makeText(QQTest.this, "数据保存成功!!", Toast.LENGTH_SHORT).show();
} else {
//写入失败
Log.d("", "写入失败!!!");
Toast.makeText(QQTest.this, "数据保存失败!!", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}
}


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qqtest);
//控件初始化
Init();
//登录按钮的点击事件
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//保存数据
SaveData();
}
});
}
}
...全文
82 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_40290083 2019-11-16
  • 打赏
  • 举报
回复
File info = new File(FileName); 这句话的意思是创建一个变量,变量类型是File类型的。可不是在路径下创建一个文件的意思。 所以当用这个info.exists()来判断的时候,文件确实不存在,因此返回false。 fos.write((uid + "***" + upassword).getBytes());这句话才会真正的创建并写文件。 修改方法很简单,把你的 if 判断条件去掉就好了。
雕·不懒惰 2019-11-15
  • 打赏
  • 举报
回复
6.0需要动态申请权限
Larry Chow 2019-11-15
  • 打赏
  • 举报
回复
谢谢各位的解答,,我会继续努力把Android学好!
Robin.Zhao 2019-11-15
  • 打赏
  • 举报
回复
File info = new File(FileName); 这句话的意思是创建一个变量,变量类型是File类型的。可不是在路径下创建一个文件的意思。 所以当用这个info.exists()来判断的时候,文件确实不存在,因此返回false。 fos.write((uid + "***" + upassword).getBytes());这句话才会真正的创建并写文件。 修改方法很简单,把你的 if 判断条件去掉就好了。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧