0
点赞
收藏
分享

微信扫一扫

Android(五十一):文件读写


文件读写

var fileName = FindViewById<EditText>(Resource.Id.file_name);           // 文件名 
var fileContent = FindViewById<EditText>(Resource.Id.file_content); // 文件内容
var writeFileBtn = FindViewById<Button>(Resource.Id.write_file_btn); // 写入按钮
var readFileBtn = FindViewById<Button>(Resource.Id.read_file_btn); // 读取按钮

// 写入
if (writeFileBtn != null)
writeFileBtn.Click += delegate
{
var outputStream = OpenFileOutput(fileName.Text, FileCreationMode.Private);
try
{
var writeBytes = Encoding.ASCII.GetBytes(fileContent.Text);
outputStream?.Write(writeBytes, 0, writeBytes.Length);
Toast.MakeText(this, "写入成功", ToastLength.Short)?.Show();
}
catch (Exception e)
{
Console.WriteLine(e);
Toast.MakeText(this, "写入失败", ToastLength.Short)?.Show();
}
finally
{
outputStream?.Close();
}
};

// 读取
if (readFileBtn != null)
readFileBtn.Click += delegate
{
try
{
var inputStream = OpenFileInput(fileName.Text);
var stringBuilder = new StringBuilder("");
var readBytes = new byte[2];
while (inputStream?.Read(readBytes) > 0)
{
stringBuilder.Append(Encoding.ASCII.GetString(readBytes, 0, readBytes.Length));
}
fileContent.Text = stringBuilder.ToString();
inputStream?.Close();
Toast.MakeText(this, "读取成功", ToastLength.Short)?.Show();
}
catch (Exception e)
{
Console.WriteLine(e);
Toast.MakeText(this, "读取失败", ToastLength.Short)?.Show();
}
};

文件读写(SD卡)

<!-- Properties/AndroidManifest.xml -->
<!--SDCard写入数据权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--SDCard读取数据权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

var fileName = FindViewById<EditText>(Resource.Id.file_name);
var fileContent = FindViewById<EditText>(Resource.Id.file_content);
var writeFileBtn = FindViewById<Button>(Resource.Id.write_file_btn);
var readFileBtn = FindViewById<Button>(Resource.Id.read_file_btn);

// 写入
if (writeFileBtn != null)
writeFileBtn.Click += delegate
{
// 肯定 Permission.Granted 否定 Permission.Denied
if (CheckSelfPermission(Manifest.Permission.WriteExternalStorage) == Permission.Denied)
{
RequestPermissions(new[] { Manifest.Permission.WriteExternalStorage }, 1);
return;
}

if (Environment.ExternalStorageState == Environment.MediaMounted)
{
var filePath = $"{Environment.ExternalStorageDirectory.CanonicalPath}/{fileName.Text}";
var fileOutputStream = new FileOutputStream(filePath);
fileOutputStream.Write(Encoding.ASCII.GetBytes(fileContent.Text));
fileOutputStream.Close();
Toast.MakeText(this, filePath, ToastLength.Short)?.Show();
}
else
Toast.MakeText(this, "SD卡不存在或者不可读写", ToastLength.Short)?.Show();
};

// 读取
if (readFileBtn != null)
readFileBtn.Click += delegate
{
// 肯定 Permission.Granted 否定 Permission.Denied
if (CheckSelfPermission(Manifest.Permission.ReadExternalStorage) == Permission.Denied)
{
RequestPermissions(new[] { Manifest.Permission.ReadExternalStorage }, 2);
return;
}

if (Environment.ExternalStorageState == Environment.MediaMounted)
{
var filePath = $"{Environment.ExternalStorageDirectory.CanonicalPath}/{fileName.Text}";
var fileInputStream = new FileInputStream(filePath);
var stringBuilder = new StringBuilder("");
var readBytes = new byte[2];
while (fileInputStream.Read(readBytes) > 0)
{
stringBuilder.Append(Encoding.ASCII.GetString(readBytes, 0, readBytes.Length));
}
fileContent.Text = stringBuilder.ToString();
fileInputStream.Close();
}
else
Toast.MakeText(this, "SD卡不存在或者不可读写", ToastLength.Short)?.Show();
};


举报

相关推荐

0 条评论