Java URLconnection对象上的getInputStream以什么格式发送数据?

Java URLconnection对象上的getInputStream以什么格式发送数据?,java,url,Java,Url,我正在尝试连接到服务器上的php脚本,并检索脚本回显的文本 代码:= import java.net.*; import java.io.*; class con{ public static void main(String[] args){ try{ int c; URL tj = new URL("http://www.thejoint.cf/test.php"); URLConnection tjcon = tj.openConne

我正在尝试连接到服务器上的
php
脚本,并检索脚本回显的文本

代码:=

import java.net.*;
import java.io.*;
class con{
public static void main(String[] args){
    try{
        int c;
        URL tj = new URL("http://www.thejoint.cf/test.php");
        URLConnection tjcon = tj.openConnection();
        InputStream input = tjcon.getInputStream();
        while(((c = input.read()) != -1)){
            System.out.print((char) c);
        }
        input.close();
    }catch(Exception e){
        System.out.println("Caught this Exception:"+e);
    }
    }
}
我确实得到了所需的输出,即文本“You will's Very successful”(您将非常成功)。但是,当我删除
(char)
类型转换时,它会产生76位长。
89111117321191051083298101321181011414112132115117999910111511512117108108
我无法理解的数字。我读到
getInputStream
是一个
字节流
,那么应该有数字乘以8个数字长的输出吗?
任何见解都会非常有用,谢谢你

它不会打印一个76位数的数字。这里有一个循环,它打印很多数字,每个数字最多三位数(一个字节)

在ASCII码中,89=“Y”,111=“o”

您删除的对
char
的转换所做的是,它将该数字解释为Unicode码点,并打印相应的字符(同时一次打印一个字符)

这种逐字节读取文本的方式非常脆弱。它基本上只适用于ASCII。您应该使用
读取器
包装
输入流
。然后您可以直接读取
char
String
(它将处理Unicode等字符集)


哦,我想它会给出单个字母的字节表示

但这正是它所做的。
如果您使用
println
而不是
print
(然后它会在自己的行上打印每个数字),您可以看得更清楚。

哦,我想它会给出单个字母的
字节表示。谢谢您,先生。。!啊,你是说比特?这些当然都存在于
字节中
,但通常不以八位形式打印,而是以十进制或(最常见的)十六进制形式打印(例如
0x6E
)。不过,如果您愿意,您可以: