iRSSの日記

はてなダイアリーiRSSの日記の続き

Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.

Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.

LogCatにこのエラーメッセージがたくさん出ている。
jsonの文字列をObjectに変換するところで、どうも、呼ばれているらしい。
new JSONArray(content);

じゃあ、いくつにしたら、いいのか?
80Kくらいにしてみるのかなあ...
いや、エラーじゃないので、別に気にしなくてOKだと、気づいた

しかし、よく考えてみると、BufferedReaderはJSONTokenerあたりが、内部的に呼び出しているわけで、ソースいじらないとかえられないのかなあ。
どうするべ

Posted: Tue Dec 29, 2009 8:38 pm?? ?Post subject: Default Buffer size in BufferedReader
I am using BufferedReader in my application and if I do not set a default Buffer size it gives me this message in logcat

/** 
     * Constructs a new BufferedReader on the Reader {@code in}. The 
     * buffer gets the default size (8 KB). 
     * 
     * @param in 
     *            the Reader that is buffered. 
     */ 
    public BufferedReader(Reader in) { 
        super(in); 
        this.in = in; 
        buf = new char[8192]; 

        // BEGIN android-added 
        /* 
         * For Android, we want to discourage the use of this 
         * constructor (with its arguably too-large default), so we 
         * note its use in the log. We don't disable it, nor do we 
         * alter the default, however, because we still aim to behave 
         * compatibly, and the default value, though not documented, 
         * is established by convention. 
         */ 
        Logger.global.info( 
                "Default buffer size used in BufferedReader " + 
                "constructor. It would be " + 
                "better to be explicit if an 8k-char buffer is required."); 
        // END android-added 
    } 

http://www.json.org/java/org/json/JSONTokener.java

public class JSONTokener {

    private int index;
    private Reader reader;
    private char lastChar;
    private boolean useLastChar;


    /**
     * Construct a JSONTokener from a string.
     *
     * @param reader     A reader.
     */
    public JSONTokener(Reader reader) {
        this.reader = reader.markSupported() ? 
        		reader : new BufferedReader(reader);
        this.useLastChar = false;
        this.index = 0;
    }

JSONTokenerでした。やっぱり。