サーバーからテキスト ファイルをダウンロードし、メモリに保存する必要があります。次に、行ごとに移動して読みます。より良い方法 - サーバーから直接 1 行ずつ読み取ります。
編集:「メモリに保存する」とは、ファイルに書き込まないことを意味します。
どうやってそれをしますか?
ありがとう!
サーバーからテキスト ファイルをダウンロードし、メモリに保存する必要があります。次に、行ごとに移動して読みます。より良い方法 - サーバーから直接 1 行ずつ読み取ります。
編集:「メモリに保存する」とは、ファイルに書き込まないことを意味します。
どうやってそれをしますか?
ありがとう!
それimpossible
についてはどうですか?次のコードを試してください: ファイルを作成する CONTEXT は Activity/ApplicationContext/etc である可能性があることに注意してください。
public boolean downloadFile(final String path)
{
try
{
URL url = new URL(path);
URLConnection ucon = url.openConnection();
ucon.setReadTimeout(5000);
ucon.setConnectTimeout(10000);
InputStream is = ucon.getInputStream();
BufferedInputStream inStream = new BufferedInputStream(is, 1024 * 5);
File file = new File(CONTEXT.getDir("filesdir", Context.MODE_PRIVATE) + "/yourfile.png");
if (file.exists())
{
file.delete();
}
file.createNewFile();
FileOutputStream outStream = new FileOutputStream(file);
byte[] buff = new byte[5 * 1024];
int len;
while ((len = inStream.read(buff)) != -1)
{
outStream.write(buff, 0, len);
}
outStream.flush();
outStream.close();
inStream.close();
}
catch (Exception e)
{
e.printStackTrace();
return false;
}
return true;
}
これは、アクティビティの使用法を含む単純なファイル R/Wcontext
です。
編集:あなたの最近変更された質問に従って、私はこれをここに投稿しています:
このコードを試してください:
try {
// Create a URL for the desired page
URL url = new URL("ksite.com/thefile.txt");
// Read all the text returned by the server
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {
// str is one line of text; readLine() strips the newline character(s)
}
in.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
これはうまくいくはずです
これは私がしました。サーバーとの接続を開くだけです (FTP サーバーの場合はFTPClient
、Apache コモンズから接続するだけです)。この接続設定を新しい に取得しAsyncTask<...,...,...>
、接続コードを に配置しますdoInBackground(...)
。編集:私はこのようにしました:
FileOutputStream fos = activity.openFileOutput("temp.tmp", Context.MODE_PRIVATE);
System.out.println(activity.getFilesDir().getAbsolutePath());
client.enterLocalPassiveMode();
client.changeToParentDirectory();
client.changeWorkingDirectory("/dsct2c/" + username);
client.retrieveFile(filename, fos);
fos.close();
publishProgress(activity.getString(R.string.toast_file_saved) + " " + filename);
FileInputStream fis = activity.openFileInput("temp.tmp");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String line = br.readLine();
while(line != null)
{
publishProgress(line);
System.out.println(line);
line = br.readLine();
}