Android中creatNewfile一些认识

xiaoxiao2021-02-28  35

最近在看Android一些IO方法,对File对象有些懵。

如下代码:

package cn.laipipig.learn; import android.database.Cursor; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Toast; import java.io.File; import java.io.IOException; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String dataPath="/data/data/"+getPackageName()+"/databases"; File f=new File(dataPath); try { //f.mkdirs(); //当本条语句被屏蔽后,creatNewfile照样可以建立 boolean b = f.createNewFile(); DisplayContact("创建文件:"+b); DisplayContact("文件大小:"+f.getTotalSpace()/(1024*1024*1024)); DisplayContact("路径:"+f.getPath()); if(f.isFile()) { DisplayContact("这是文件"); }else{DisplayContact("这是文件夹");} /* 注释区语句如果还原的话,database就变成了文件夹而不是文件了 File fb=new File(dataPath+"/MYDB.txt"); fb.createNewFile(); DisplayContact("Test"); if(f.isFile()) { DisplayContact("这是文件"); }else{DisplayContact("这是文件夹");} if(fb.isFile()) { DisplayContact("这是文件"); }else{DisplayContact("这是文件夹");} */ }catch (IOException e) {DisplayContact(e.toString());} } public void DisplayContact(Cursor c) { Toast.makeText(this,c.getString(0)+"\n"+c.getString(1)+"\n"+c.getString(2),Toast.LENGTH_LONG).show(); } public void DisplayContact(String c) { Toast.makeText(this,c,Toast.LENGTH_LONG).show(); } }

对于相同的语句,如果把注释区去掉的话,产生的database对象就完全不一样,无注释时它返回的是一个文件,而当有注释区时,它返回的就是一个文件夹。因为还是对Java一些相关知识不是很明确,我只是简单的认为,这是因为Java语句会把所有句子编译完之后才给出次结论。

Java如果要对一个File进行IO的话,都要先进行一个creatNewfile或者creatTempleFile

转载请注明原文地址: https://www.6miu.com/read-600359.html

最新回复(0)