Android: 如何访问项目文件夹下的文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android: 如何访问项目文件夹下的文件相关的知识,希望对你有一定的参考价值。

比如项目结构如下:
TestAPP
|----src
| |----Util.java
。。。 。。。
|----resource //自建文件夹
| |-----a.txt //自建文件

我不知道这个程序最后会被安装到哪里。我想要在Util.java中访问resource文件夹下的
a.txt文件, 读入文件流。应该怎么写。请高手指教。谢谢。

android中读取assets文件夹里面的文件,可使用SDK的API,需要用AssetManager以字节流的形式读取文件。
assets的读取方式:
1. 先在Activity里面调用getAssets() 来获取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。
3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。
4.调用AssetManager.close() 关闭AssetManager。
需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作。
参考技术A 直接到tomcat.apache.org下载个tomcat,
然后通过netbeans把你的web工程导出个war,我想netbeans应该有这个功能,放到tomcat的webapps下面
启动新装的tomcat,应该就可以了。

不过如何你要同时启动netbeans tomcat和新安装的tomcat,可能需要配置一下server.xml改一下端口,否则端口会冲突的

参考技术B android支持携带写入和读取,但是不是这么简单,一般我们会用raw或assest两个文件夹来携带进SDcard。。我这篇文章看看吧~
http://hi.baidu.com/%C1%D6%B5%74%B3%CE01/blog/item/5d5a471d25e93c13314e15e7.html本回答被提问者采纳

关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件

找了这么久资料,总算解决了

感谢博客园:http://www.cnblogs.com/xsht/p/5275081.html

感谢百度:http://zhidao.baidu.com/link?url=Vz4TlygvnMyYVj105bCuzkusjF0G5rM6opHvEzhcCaJK5s1gFUZ3PBgAWCNsfY1RmtPf4ZEo8EV_Gd7SYKV4S_

 

在有Struts部署的Java EE环境中,我们一般把jsp页面写在WebRoot\\WEB-INF\\content 目录下,这样使得jsp页面一定需要struts的控制转发才可访问,提高页面安全性。

但是今天在jsp页面中应用WebRoot目录中的css,js文件发现十分困难,先看看我的文件结构:

目标是在index.jsp中访问default.css。

defautl.css是在index.jsp目录的父目录的父目录的CSS目录下。所以我这样写:

ps:空格为故意添加

        <link href="../ ../css/default.css" rel="stylesheet" type="text/css"/>
        <link href="../ ../css/uploadify.css" rel="stylesheet" type="text/css"/>

在Eclipes中也出现超链接提示,说明目录正确,但是结果失败。

查询资料后,在百度百科中看到:

http://baike.baidu.com/view/1745468.htm

TomCat 服务器下的WEB-INF文件夹是一个非常安全的文件,在页面中不能直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

 

从上面的实验可以看出,不但是直接访问,使用" ../ ../ "之类的间接访问也不能成功。

 

在此多方查询资料之后,尝试使用如下方法访问:

         <!-- 输出为项目根目录,即WebRoot -->
         <%String path = request.getContextPath(); %>
         <link href="${path}/css/default.css" rel="stylesheet" type="text/css"/>
         <link href="${path}/css/uploadify.css" rel="stylesheet" type="text/css"/>

 

果不其然,页面成功读出了css文件中的样式,达到目的。

 

不过此页面中存在java脚本,不够规范,查询资料后,用以下纯EL表达式实现:

      <c:set value="${pageContext.request.contextPath}" var="path" scope="page"/>
         <link href="${path}/css/default.css" rel="stylesheet" type="text/css"/>
         <link href="${path}/css/uploadify.css" rel="stylesheet" type="text/css"/>

先将ContextPath放如page中,再使用el表达式取出,问题得以解决。

 

但是,也有不少程序猿是在用Struts_2的标签,要做到上面的效果,就有区别了

Struts_2的标签要访问到 pageContext.request.contextPath,写法上就与jstl的有区别

    <s:set value="#request.get(\'javax.servlet.forward.context_path\')" var="cssPath" scope="page"/>
    <link rel="stylesheet" href="${cssPath}/css/index.css" />

 

Struts_2标签set的value属性要进行访问对象,语法就是 value="#对象" 或者 value="%{对象}"两种写法

 

 

 

----------------------------------------------------------------------

(over)

 

以上是关于Android: 如何访问项目文件夹下的文件的主要内容,如果未能解决你的问题,请参考以下文章

如何修改android sys下的文件

Android 项目中的资源获取方法

怎么访问web-inf目录下的文件

Android系统下的文件权限

Android系统下的文件权限

Android系统下的文件权限