⑴ android里面怎么无法读取本地文件啊
new FileInputStream(path) 是文件夹路径 如果对的话 可能权限问题 再就是如果是sdcard上的而用这个 若是程序的(raw文件夹)要用 openFileInput(name)
⑵ Android中,在读取网络图片json数据时,如何将多个图片放到ImageView总,并循环显示出不同的图片呢
把多张图片的路径存储到数组或集合中,用一个子线程控制要显示的图片编号,用handler机制通知更新imageview的图片
⑶ android 如何获得网络文件大小
public long getFileSize(String urlString) throws IOException,Exception{
long lenght = 0;
String url = UrlEncode(urlString, "UTF-8");
//URL mUrl = new URL(urlString);
URL mUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) mUrl.openConnection();
conn.setConnectTimeout(5*1000);
conn.setRequestMethod("GET");
conn .setRequestProperty("Accept-Encoding", "identity");
conn.setRequestProperty("Referer", url);
//conn.setRequestProperty("Referer", urlString);
conn.setRequestProperty("Charset", "UTF-8");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.connect();
int responseCode = conn.getResponseCode();
// 判断请求是否成功处理
if (responseCode == HttpStatus.SC_OK) {
lenght = conn.getContentLength();
}
return lenght;
}
⑷ 安卓开发 如何获取网络中的图片
用自带的HttpClient,下面是我自己的库里面取出来的一个方法,我是异步ajax调用的,你要是自己用的话,把那些异步回调的去掉就行了。
url传入图片地址,outputFile是输出的文件对象,也就是说,要你先指定保存的文件位置。
只要没限制外链的图片文件应该都没问题。
/**
* 下载文件
* @param url
* @param outPut
* @param listener
* @throws AjaxException
*/
public static Responses downLoad(String url, AjaxParameters params,File outputFile, TransmitProgressLitener uploadListener) throws AjaxException{
if(params.size()>0){
url = url + "?" + Utils.encodeUrl(params);
}
Utils.amLog(url);
//httpGet连接对象
HttpGet httpRequest = new HttpGet(url);
//取得HttpClient 对象
//HttpClient httpclient = new DefaultHttpClient();
HttpClient httpclient = getNewHttpClient();
InputStream is = null;
OutputStream os= null;
try {
//请求httpClient ,取得HttpRestponse
HttpResponse httpResponse = httpclient.execute(httpRequest);
if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
//取得相关信息 取得HttpEntiy
HttpEntity httpEntity = httpResponse.getEntity();
//获得一个输入流
is = httpEntity.getContent();
os = new FileOutputStream(outputFile,true);
long downloaded = 0;
byte[] buffer=new byte[IO_CACHE_SIZE];
while(true){
int count=is.read(buffer);
if(count==-1){
break;
}
os.write(buffer, 0, count);
if(null!=uploadListener){
downloaded +=count;
uploadListener.updateProgress(downloaded, 0);
}
}
}
return new Responses("download suc",((DefaultHttpClient)httpclient).getCookieStore(),((DefaultHttpClient)httpclient).getCookieSpecs());
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new AjaxException(e);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new AjaxException(e);
} finally{
if(null!=is){
try {
is.close();
} catch (IOException e) {
throw new AjaxException(e);
}
}
if(null!=os){
try {
os.close();
} catch (IOException e) {
throw new AjaxException(e);
}
}
}
}
⑸ android有哪几种方式进行数据库访问
Android为数据存储提供了多种方式,分别有如下几种:
文件
SharedPreferences
SQLite数据库
内容提供者(Content provider)
网络
使用文件进行数据存储
首先给大家介绍使用文件如何对数据进行存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。
复制代码 代码如下:
public class FileActivity extends Activity {
@Override public void onCreate(Bundle savedInstanceState) {
...
FileOutputStream outStream = this.openFileOutput("csdnt.txt", Context.MODE_PRIVATE);
outStream.write("CSDN".getBytes());
outStream.close();
}
}
openFileOutput()方法的第一参数用于指定文件名称,不能包含路径分隔符“/” ,如果文件不存在,Android 会自动创建它。创建的文件保存在/data/data/<package name>/files目录,如: /data/data/cn.csdn.action/files/csdn.txt ,通过点击Eclipse菜单“Window”-“Show View”-“Other”,在对话窗口中展开android文件夹,选择下面的File Explorer视图,然后在File Explorer视图中展开/data/data/<package name>/files目录就可以看到该文件。
openFileOutput()方法的第二参数用于指定操作模式,有四种模式,分别为: Context.MODE_PRIVATE = 0
Context.MODE_APPEND = 32768
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
如果希望文件被其他应用读和写,可以传入:
openFileOutput("csdn.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
android有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给他一个userid,当该应用要去访问其他资源比如文件的时候,就需要userid匹配。默认情况下,任何应用创建的文件,sharedpreferences,数据库都应该是私有的(位于/data/data/<package name>/files),其他程序无法访问。除非在创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE ,只有这样其他程序才能正确访问。
读取文件内容
如果要打开存放在/data/data/<package name>/files目录应用私有的文件,可以使用Activity提供openFileInput()方法。
FileInputStream inStream = this.getContext().openFileInput("csdn.txt");
Log.i("FileTest", readInStream(inStream));
readInStream()的方法请看本页下面备注。
或者直接使用文件的绝对路径:
File file = new File("/data/data/cn.csdn.action/files/csdn.txt");
FileInputStream inStream = new FileInputStream(file);
Log.i("FileTest", readInStream(inStream));
注意:上面文件路径中的“cn.csdn.action”为应用所在包,当你在编写代码时应替换为你自己应用使用的包。
对于私有文件只能被创建该文件的应用访问,如果希望文件能被其他应用读和写,可以在创建文件时,指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录
⑹ android 怎么读取局域网共享文件
Android手机可用力卓文件、ES文件管理器等,iPhone可以用ezshare、oplayer.
⑺ 如何对Android设备进行网络抓包
工具/原料
Fiddler
Android设备
方法/步骤
启动Fiddler,打开菜单栏中的 Tools > Fiddler Options,打开“Fiddler Options”对话框。
在Fiddler Options”对话框切换到“Connections”选项卡,然后勾选“Allow romote computers to connect”后面的复选框,然后点击“OK”按钮。
在本机命令行输入:ipconfig,找到本机的ip地址。
打开android设备的“设置”->“WLAN”,找到你要连接的网络,在上面长按,然后选择“修改网络”,弹出网络设置对话框,然后勾选“显示高级选项”。
在“代理”后面的输入框选择“手动”,在“代理服务器主机名”后面的输入框输入电脑的ip地址,在“代理服务器端口”后面的输入框输入8888,然后点击“保存”按钮。
然后启动android设备中的浏览器,访问网络的首页,在fiddler中可以看到完成的请求和响应数据。
⑻ 如何用安卓文件系统读写数据
经过ARM板-RK3288和小米手机的测试。亲测可以使用。
博客中写的欠缺的地方,无所谓,直接去看代码,里面的注释很详细。程序员看代码就行了,每个函数全部封装好了,废话不多话。博客很长,大家慢慢看,看完一劳永逸,以后直接调我的函数就行了,但是讲的很详细,全部都是对比的来实现,方便大家的阅读。
总体:大家依据直接饿的需求去看
一、先大体的介绍一下理论部分,这里还是很重要的。
二、常见的存储数据的方式
三、IO 文件流的读取方式
四、sharedPreference 存储
五、SQLite的存储方式
六、assets的存储方式
七、res的存储方式
八、raw的存储方式
一、先大体的介绍一下理论部分,这里还是很重要的。
安卓存储文件、数据的地方: RAM、ROM、内存(内部存储器)、APP程序里面(Assets,raw,res),SD卡(早期的安卓的可以插卡,现在的不支持了,但是有些 arm板 嵌入式方向的还是带卡槽的),总体上来说就是这些了,网络。
接下来再细分:
1、RAM、ROM 这些东西我们就别碰了,不然一大堆问题,Environment.getRootDirectory() 需要获取root权限,不合适
2、内存和SD卡 大家得理解 Environment.getExternalStorageState() 代表的是什么意思,不是插卡的SD卡,而是说你买了开发板、手机,厂家送你的存储地方(直接你得让他送你哈)。 这部分作为主要的存储路径,小数据和大数据都适用。
3、SD卡,黑色那张卡,老古董,现在手机都没有了,不建议大家使用,非要去使用,我也写了相关的代码(根据机型,不通用,切记,不能用不能怪我,这个只提供思路)。
4、网络,请求自己的服务器,读取数据,URI的方式,httpClient post 和 get 两种请求数据的方式
存储的地方就这么多了。
二、常见的存储数据的方式
1、sharedPreference, 将数据保存为 xml 的格式,
2、数据库 将SQLite的方式
3、contentprovider APP之间交互数据的方式。(这里不讲,没有用过,没有发言权)
4、文件的读取(IO流) 和 Java的操作类似。
5、Android内部的存储 assets,res, raw, 三者的区别
assets 和 raw 是不会随着 APP进行编译, res下的文件会随着app一起编译,每次 shift+alt+x 都要等好久
assets目录下可以创建子文件夹 raw 不可以