android端下載server端的txt檔
發表人:
learner
積分: 44
積分: 44
請問,android端要如何下載server端的txt檔??
我知道2.3有downloadmanager可以用,
但是網路上找的範例都看不太懂,
不知道怎麼把txt存到android的sd卡的某個目錄下
可以請版大做個範例嗎??感謝!!
P.S. 或是有其他的方法有也可以做到下載txt檔??
我知道2.3有downloadmanager可以用,
但是網路上找的範例都看不太懂,
不知道怎麼把txt存到android的sd卡的某個目錄下
可以請版大做個範例嗎??感謝!!
P.S. 或是有其他的方法有也可以做到下載txt檔??
發表人:
Seachaos
積分: 2432
積分: 2432
你可以試看看用以下方法
[sea:javaCode]
URL url = new URL("http://www...");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
InputStream is = con.getInputStream();
File ofe = new File(savePath);
if(!ofe.exists()){
ofe.createNewFile();
}
// write string
FileOutputStream fos = new FileOutputStream(ofe);
byte data[] = new byte[1024];
int length = 0, getPer = 0;
while((getPer = is.read(data))!=-1){
length+=getPer;
fos.write(data, 0, getPer);
}
fos.flush();
fos.close();
is.close();
con.disconnect();
[/sea]
[sea:javaCode]
URL url = new URL("http://www...");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
InputStream is = con.getInputStream();
File ofe = new File(savePath);
if(!ofe.exists()){
ofe.createNewFile();
}
// write string
FileOutputStream fos = new FileOutputStream(ofe);
byte data[] = new byte[1024];
int length = 0, getPer = 0;
while((getPer = is.read(data))!=-1){
length+=getPer;
fos.write(data, 0, getPer);
}
fos.flush();
fos.close();
is.close();
con.disconnect();
[/sea]
發表人:
learner
積分: 44
積分: 44
請問File ofe = new File(savePath)裡的savePath是我要儲存檔案的路徑嗎?
如果是的話,我該怎麼把它指到sdcard裡?
是要另外宣告字串來指定儲存位置嗎?
如果是的話,我該怎麼把它指到sdcard裡?
是要另外宣告字串來指定儲存位置嗎?
發表人:
Seachaos
積分: 2432
積分: 2432
是的
savePath就是路徑
你可以用Environment.getExternalStorageDirectory()來取得SD Card的Path
例如
[sea:javaCode]
File ofe = new File(Environment.getExternalStorageDirectory()+"/test.txt");
[/sea]
savePath就是路徑
你可以用Environment.getExternalStorageDirectory()來取得SD Card的Path
例如
[sea:javaCode]
File ofe = new File(Environment.getExternalStorageDirectory()+"/test.txt");
[/sea]
發表人:
learner
積分: 44
積分: 44
那url那部分是連結到server端儲存檔案的位置吧!
有一定要存在server端的../wwwroot/..底下嗎?
有一定要存在server端的../wwwroot/..底下嗎?
發表人:
Ye.Jian.Yin
積分: 6
積分: 6
url是server端的網址
例如 http://example/test.txt 一樣
和Server的目錄沒有關系喔
例如 http://example/test.txt 一樣
和Server的目錄沒有關系喔
發表人:
訪客
請問為什麼我照著打可是還是會有錯誤阿?
權限也給了是有什麼東西需要擴充嗎?
權限也給了是有什麼東西需要擴充嗎?
發表人:
訪客
請問如果是下載SERVICE上的TXT檔但是沒有要存檔
只是要取得文件的內容的話應該怎麼改阿@@
只是要取得文件的內容的話應該怎麼改阿@@
發表人:
Seachaos
積分: 2432
積分: 2432
如果你要從Android上直接取得Server上的文字的話這段就可以了
[sea:javaCode]
URL url = new URL("http://www...");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
InputStream is = con.getInputStream();
[/sea]
再把InputStream轉成String就好了
另外你是否方便貼一下你的Code?
這樣才有辦法知道你的問題在那邊
[sea:javaCode]
URL url = new URL("http://www...");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
InputStream is = con.getInputStream();
[/sea]
再把InputStream轉成String就好了
另外你是否方便貼一下你的Code?
這樣才有辦法知道你的問題在那邊
發表人:
訪客
我原本的做法是寫入檔案然後再讀出來@@
InputStream轉成String 怎麼轉換阿
不能用toString嗎@@
InputStream轉成String 怎麼轉換阿
不能用toString嗎@@
發表人:
訪客
可以用看看以方的方法
[sea:javaCode]
int c = 0; String str = "";
while((c = inputStream.read())!=-1)
str += (char)c;
[/sea]
str就會是字串了
[sea:javaCode]
int c = 0; String str = "";
while((c = inputStream.read())!=-1)
str += (char)c;
[/sea]
str就會是字串了
發表人:
訪客
inputStream不是資料流嗎?
為什麼用整數裝然後再轉成字元
就可以了阿?
為什麼用整數裝然後再轉成字元
就可以了阿?
發表人:
訪客
是資料流沒錯,所以這裡不是看成數字,是看成Byte
也就可以轉成char了
然後再merge到string內
也就可以轉成char了
然後再merge到string內
發表人:
訪客
int c = 0; String str = "";
while((c = inputStream.read())!=-1)
str += (char)c;
可是這樣的話c不是整數型態嗎?
為什麼會變成byte[]
while((c = inputStream.read())!=-1)
str += (char)c;
可是這樣的話c不是整數型態嗎?
為什麼會變成byte[]