你的这个文件是不是存在手机的内存卡里面呢,如果是可以这样做
//首先获取到手机内存卡的根路径
String
rootPath
=
EnvironmentgetExternalStorageDirectory()getPath();
File
file
=
new
File(rootPath
+
"/atxt");
//假设文件就在内存卡的根目录下
得到file对象之后就跟Java一样处理了
数据库中的文件的话,要adb shell进去查看数据库有没有该字段。存储卡上的文件的话,java中没有获取文件创建事件的接口。
一、 从resource中的raw文件夹中获取文件并读取数据(资源文件只能读不能写)
String res = "";
try{
InputStream in = getResources()openRawResource(Rrawbbi);
//在\Test\res\raw\bbitxt,
int length = inavailable();
byte [] buffer = new byte[length];
inread(buffer);
//res = EncodingUtilsgetString(buffer, "UTF-8");
//res = EncodingUtilsgetString(buffer, "UNICODE");
res = EncodingUtilsgetString(buffer, "BIG5");
//依bbitxt的编码类型选择合适的编码,如果不调整会乱码
inclose();
}catch(Exception e){
eprintStackTrace();
}
myTextViewsetText(res);//把得到的内容显示在TextView上
二、 从asset中获取文件并读取数据(资源文件只能读不能写)
String fileName = "yantxt"; //文件名字
String res="";
try{
InputStream in = getResources()getAssets()open(fileName);
// \Test\assets\yantxt这里有这样的文件存在
int length = inavailable();
byte [] buffer = new byte[length];
inread(buffer);
res = EncodingUtilsgetString(buffer, "UTF-8");
}catch(Exception e){
eprintStackTrace();
}
三、 从sdcard中去读文件,首先要把文件通过\android-sdk-windows\tools\adbexe把本地计算机上的文件copy到sdcard上去,adbexe push e:/Ytxt /sdcard/, 不可以用adbexe push e:\Ytxt \sdcard\ 同样: 把仿真器上的文件copy到本地计算机上用: adb pull /data/data/comtt/files/Testtxt e:/
String fileName = "/sdcard/Ytxt";
//也可以用String fileName = "mnt/sdcard/Ytxt";
String res="";
try{
FileInputStream fin = new FileInputStream(fileName);
//FileInputStream fin = openFileInput(fileName);
//用这个就不行了,必须用FileInputStream
int length = finavailable();
byte [] buffer = new byte[length];
finread(buffer);
res = EncodingUtilsgetString(buffer, "UTF-8");
finclose();
}catch(Exception e){
eprintStackTrace();
}
myTextViewsetText(res);
先获取读取文件的权限,再遍历文件夹及子文件夹,直到结束就可以了。
private void getAllFiles(File root,ArrayList<File> results){
File files[] = rootlistFiles();
if(files != null){
for (File f : files){
if(fisDirectory()){
getAllFiles(f,results);
}
else{
String name = fgetName();
String extension
= namesubstring(namelastIndexOf(""));
if(extensionEqual("pdf")){
resultsadd(f);
}
}
}
}
}
读文件:
1、通过File获取文件
2、打开输入流,读取文件
写文件:
1、创建文件
2、打开输出流,写入文件内容
示例:
读文件:String content = ""; //文件内容字符串
//通过路径/sdcard/footxt打开文件
File file = new File("/sdcard/footxt");
try {
InputStream instream = new FileInputStream(file);//读取输入流
InputStreamReader inputreader = new InputStreamReader(instream);//设置流读取方式
BufferedReader buffreader = new BufferedReader(inputreader);
while (( line = buffreaderreadLine()) != null) {
content += line + "\n";//读取的文件内容
}
}catch(Exception ex){
}写文件:
File file = new File("/sdcard/footxt");//
if(!fileexists())
filecreateNewFile();//如果文件不存在,创建footxt
try {
OutputStream outstream = new FileOutputStream(file);//设置输出流
OutputStreamWriter out = new OutputStreamWriter(outstream);//设置内容输出方式
outwrite("文字内容");//输出内容到文件中
outclose();
} catch (javaioIOException e) {
eprintStackTrace();
}
for (i=0;i<nLen;i++)
{
tempPtX[i]=1;
tempPtY[i]=inPtY[i];
}
for (i=0;i<2poly_n+1;i++)
for (sumXx[i]=0,j=0;j<nLen;j++)
{
sumXx[i]+=tempPtX[j];
tempPtX[j]=inPtX[j];
}
这个是由于android中的安全机制的缘故,由于android继承了Linux系统的传统,对于某个特定的目录有用户的权限,一共分为三种--可读,可写,可执行;虽然说可以设置某个特定的目录的权限,但是对于目录里面的子目录和子文件都可以进行权限的设置,也就是说出了根目录权限之外,子目录本身的权限也决定了子目录可否访问,这一点需要清楚了解,所以在判断完了是否是目录之外,还需要在进行listFiles()获取File[]数据后判断获取的数组是否为空,如果为空的话,文件夹是不可访问的。
以上就是关于android 我想读取一个txt文件,怎么获取路径全部的内容,包括:android 我想读取一个txt文件,怎么获取路径、在android中怎么获取文件的创建时间、android开发,想要获取手机内的所有pdf文件,该怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)