0

アプリを開発しています。そのアプリは、単純な .php URL のコンテンツを取得し、それを文字列として保存する必要があります。問題は、それが非常に長い文字列 (VERY LONG) であり、半分しかないことです。このリンクを例として取り上げます:
http://thuum.org/download-dev-notes-web.php
このコードで

URL notes = new URL("http://thuum.org/download-dev-notes-web.php")
BufferedReader in = new BufferedReader(new InputStreamReader(notes.openStream()));
String t = "";
while ((inputLine = in.readLine()) != null)
 t = inputLine;
fOut = openFileOutput("notes", MODE_PRIVATE);
fOut.write(t.getBytes());
// Added This \/ to see it's length when divided, and it is not nearly as much as it should be
System.out.println(t.split("\\@").length);

それを文字列にダウンロードして、切り取らずに内部ストレージに保存する方法を教えてもらえますか? 最後の x 桁しか取得できないように見える理由の一部...

4

1 に答える 1

0

String twhile ループのすべての反復で上書きしているようです。これを試して:

    StringBuilder result = new StringBuilder();
    String inputLine = "";
    while ((inputLine = in.readLine()) != null) {
        result.append(inputLine);
    }
    fOut = openFileOutput("notes", MODE_PRIVATE);
    fOut.write(result.toString().getBytes());

変更可能な StringBuilder を作成し、結果の (不変の) String を書き込み呼び出しで使用します。

編集:ループ本体の終わりを示すために常に中括弧を使用することもお勧めします。これらを省略すると、すぐにバグにつながる可能性があります。最近の例については #gotofail を確認してください;-)

于 2014-03-15T22:17:55.273 に答える