Java 字符数组大小?Stringbuffer以字符串形式保存HTMl文件

Java 字符数组大小?Stringbuffer以字符串形式保存HTMl文件,java,string,url,Java,String,Url,我正在读取一个HTML文件并将其保存为字符串。我想读取长度(int len=con.getcontentlength())并放入charcharArray=new char(len),但是getcontentlength的结果总是-1。 所以我修正了字符但是如果我 char[]charArray=新字符[1]或 char[]charArray=新字符[512]或 char[]charArray=新字符[1024] 它总是有效的 我不明白为什么 public static void main(St

我正在读取一个HTML文件并将其保存为字符串。我想读取长度(
int len=con.getcontentlength()
)并放入char
charArray=new char(len)
,但是
getcontentlength
的结果总是-1。 所以我修正了字符但是如果我
char[]charArray=新字符[1]
char[]charArray=新字符[512]
char[]charArray=新字符[1024]

它总是有效的

我不明白为什么

public static void main(String[] args) throws Exception
{
    String name="AAAA";     
    URL url = new URL("http:...");
    URLConnection con = url.openConnection();

    InputStream is = con.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);

    int numCharsRead;   
    char[] charArray = new char[1];
    StringBuffer sb = new StringBuffer();
    while ((numCharsRead = isr.read(charArray)) > 0)
        sb.append(charArray, 0, numCharsRead);
    String htmlString = sb.toString();

新字符[1]更改
新字符[isr.available()]

新字符[1]更改
新字符[isr.available()]

除非程序是多线程的,否则不要使用StringBuffer。改用StringBuilder。好的,我改为StringBuilder,但是字符?我可以把我不想用的维度放在StringBuffer上,除非你的程序是多线程的。改用StringBuilder。好的,我改为StringBuilder,但是字符?我可以把我想要的尺寸
InputStreamReader isr = new InputStreamReader(is);
    int c = 0;
    while((c = isr.read()) != -1) {
        char character = (char) c;

        System.out.println(character);

    }