Чтение HTML-файла из ресурсов

У меня есть HTML-файл в активах, aaa.html. Я хочу прочитать содержимое файла HTML и заменить его из другой строки.

Является ли этот способ правильным или есть какой-то другой вариант.

мой код:

File f = new File("file:///android_asset/aaa.html");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);

Но его файл подачи не найден, где при загрузке в веб-представление загружает файл.

 Suhaib04 июл. 2017 г., 02:07

Ответы на вопрос(2)

mWebView.loadUrl("file:///android_asset/myfile.html");

Вы хотите заменить содержимое внутри тегов HTML-файла, чтобы код класса решения был здесь ..

public class CardDetail {
    public static String newHtmlString = "";

    // private Context context;

    @SuppressWarnings("rawtypes")
    public String getNewHtmlString(String htmlString, HashMap hm) {
        try {
            StringTokenizer st = new StringTokenizer(htmlString, "##");
            CardDetail.newHtmlString = "";
            while (st.hasMoreTokens()) {
                String token = st.nextToken();
                CardDetail.newHtmlString += token;
                if (st.hasMoreTokens()) {
                    String token2 = st.nextToken();
                    if (token2.equals("NAME") || token2.equals("POSITION") || token2.equals("COMPANY") || token2.equals("PHOTOURL"))
                        CardDetail.newHtmlString += hm.get(token2);
                    if (token2.equals("SKYPE_CONTAINER1")
                            || token2.equals("TWITTER_CONTAINER1")
                            || token2.equals("PHONENUMBER_CONTAINER1")
                            || token2.equals("EMAIL_CONTAINER1")
                            || token2.equals("ADDRESS_CONTAINER1")) {
                        String replaceString = st.nextToken();
                        String tokenMiddle = (String) hm.get(st.nextToken());                       
                        if (!tokenMiddle.equals("")) {
                            replaceString += tokenMiddle;
                            CardDetail.newHtmlString += replaceString   + st.nextToken();
                            st.nextElement();
                        } else {
                            st.nextElement();
                            st.nextElement();
                        }
                    }
                }
            }
//          Log.i("convertedHTMLString", newHtmlString);
            return CardDetail.newHtmlString;

//          htmlString = "<img src='" + hm.get("PHOTOURL") + "' width=80 height=80>";           
//          return htmlString;
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        return null;
    }

    @SuppressWarnings("unchecked")
    public HashMap<?, ?> getProfileHashMap(JSONObject jsonObject) {
        @SuppressWarnings("rawtypes")
        HashMap hm = new HashMap();
        jsonObject = (new JSONConverterClass()).convertJsonObjectToCardDetail(jsonObject);
        try {
            hm.put("EMAIL", jsonObject.getString("email"));
            hm.put("NAME", jsonObject.getString("firstname") + " " + jsonObject.getString("lastname"));
            hm.put("COMPANY", jsonObject.getString("company_name"));
            hm.put("POSITION", jsonObject.getString("position"));
            hm.put("WEBSITE", jsonObject.getString("website"));
            hm.put("PHONENUMBER", jsonObject.getString("phonenumber"));
            hm.put("PHOTOURL", jsonObject.getString("picture_url"));
            hm.put("SKYPE", jsonObject.getString("skype_username"));
            hm.put("TWITTER", jsonObject.getString("twitter_username"));
            hm.put("ADDRESS", jsonObject.getString("generic_location"));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return hm;
    }
}

convertJsonObjectToCardDetail этот класс просто замените строку значениями из Json надеюсь, что это решит вашу проблему ....

 22 июн. 2012 г., 16:44
Дайте мне знать, что это работает для вас .. если помогает оценить.
Решение Вопроса
InputStream is = getAssets().open("aaa.html");
int size = is.available();

byte[] buffer = new byte[size];
is.read(buffer);
is.close();

String str = new String(buffer);
str = str.replace("old string", "new string");
 zaiff22 июн. 2012 г., 16:25
Я заменил строку сейчас, я хочу снова сохранить эту обновленную строку в этом файле?
 zaiff22 июн. 2012 г., 16:24
Большое спасибо, это сработало.
 22 июн. 2012 г., 16:34
Вы не можете сохранить этот файл, потому что все элементы в папке ASSET доступны только для чтения, но вы можете загрузить эту строку непосредственно в WebView
 22 июн. 2012 г., 16:38
нет, но вы можете записать этот файл в SDCard как HTML
 zaiff22 июн. 2012 г., 16:37
Хорошо, тогда я могу написать строку html в файл и сохранить ее в ресурсах с расширением .html.

Ваш ответ на вопрос