android 创建 file 文件,文本 并写入内容
創(chuàng)建file 文件在android 6.0 之后需要用戶手動(dòng)開(kāi)啟權(quán)限下面介紹下使用
這里只是寫(xiě)入內(nèi)容所以就在配置文件中添加寫(xiě)入的權(quán)限,
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
如果需要,讀取,刪除權(quán)限,需要另外添加
?看下具體的代碼
//sdk 大于6.0的判斷if (Build.VERSION.SDK_INT >= 23) {int REQUEST_CODE_CONTACT = 101;String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};//驗(yàn)證是否許可權(quán)限for (String str : permissions) {if (MainActivity.this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {//申請(qǐng)權(quán)限MainActivity.this.requestPermissions(permissions, REQUEST_CODE_CONTACT);return;} else {String path = Environment.getExternalStorageDirectory() + "/MyTest";Log.e("------path", path);File files = new File(path);if (!files.exists()) {files.mkdirs();}try {FileWriter fw = new FileWriter(path + File.separator + "log.txt");fw.write("學(xué)而時(shí)習(xí)之,溫故而知新");fw.close();Toast.makeText(MainActivity.this, "文件寫(xiě)入成功", Toast.LENGTH_SHORT).show();} catch (Exception e) {e.printStackTrace();}}}}
很多人寫(xiě)入內(nèi)容的時(shí)候使用的FileOutputStream 這個(gè)看自己的習(xí)慣,由于FileOutputStream 要傳入的內(nèi)容是byte 類型
還需要在轉(zhuǎn)換一次,使用FileWriter 是可以直接使用String 所以,這里使用了FileWriter 類型
看下具體在手機(jī)里面的那個(gè)目錄里面
看下打印的路徑?E/------path: /storage/emulated/0/MyTest? ?,剛開(kāi)始自己搜索emulated 到這個(gè)文件夾里面找,但是沒(méi)有發(fā)現(xiàn)內(nèi)容
最后又檢查代碼感覺(jué)沒(méi)有問(wèn)題呢,最后自己把文件改成時(shí)間最近的在上面看到了創(chuàng)建的文件了?
看下寫(xiě)入的內(nèi)容
這樣就完成了,但是如果有寫(xiě)特殊的地方,開(kāi)發(fā)需要把日志使用寫(xiě)入的文件并記錄時(shí)間
這樣可以使用把上面的改成一個(gè)靜態(tài)類,看自己習(xí)慣放到那個(gè)工具類里面就行,看下面代碼
public class FileLog{/*** 保存日志到本地存儲(chǔ)根目錄下* @param message 保存的信息* @param fileName 保存的文件名稱* @param messageTitle 保存的信息標(biāo)題*/public static void saveLog(String messageTitle,String message, String fileName) {String path = Environment.getExternalStorageDirectory() + "/MyLog";File files = new File(path);Date date = new Date();SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-M-dd HH:mm:ss,EE", Locale.CHINA);String formatDate = dateFormat.format(date);if (!files.exists()) {files.mkdirs();}if (files.exists()) {try {FileWriter fw = new FileWriter(path + File.separator+ fileName + ".txt");fw.write(formatDate + " " + messageTitle + "\n");fw.write(message + "\n");fw.write("\n");fw.close();} catch (Exception e) {e.printStackTrace();}}}
}
使用如下
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findViewById(R.id.txt).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//sdk 大于6.0的判斷if (Build.VERSION.SDK_INT >= 23) {int REQUEST_CODE_CONTACT = 101;String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};//驗(yàn)證是否許可權(quán)限for (String str : permissions) {if (MainActivity.this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {//申請(qǐng)權(quán)限MainActivity.this.requestPermissions(permissions, REQUEST_CODE_CONTACT);return;} else {FileLog.saveLog("------查看saveLog是否生效", "具體要查看的內(nèi)容,這個(gè)可以看成Log里面要查看日志的內(nèi)容", "MainActivityLog");}}}}});}
}
?
查看生成的文件
生成的txt 名字自己取的
查看生成的內(nèi)容
?
源碼地址查看,去吧皮卡丘
總結(jié)
以上是生活随笔為你收集整理的android 创建 file 文件,文本 并写入内容的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 有酒有故事下一句是什么呢?
- 下一篇: 多久怀不上是不孕不育