Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从InputStream读取直到双引号_Java_Byte_Inputstream_Quotes - Fatal编程技术网

Java 从InputStream读取直到双引号

Java 从InputStream读取直到双引号,java,byte,inputstream,quotes,Java,Byte,Inputstream,Quotes,需要帮助从InputStream读取字节列表直到引号。 问题是,InputStream读取字节,我不确定当它达到引号时如何停止读取。。。我想到了这样的事情: public static List<Byte> getQuoted(InputStream in) throws IOException { int c; LinkedList<Byte> myList = new LinkedList<>(); try { while

需要帮助从InputStream读取字节列表直到引号。 问题是,InputStream读取字节,我不确定当它达到引号时如何停止读取。。。我想到了这样的事情:

public static List<Byte> getQuoted(InputStream in) throws IOException {
    int c;
    LinkedList<Byte> myList = new LinkedList<>();
    try {
    while ((in.read()) != "\"") {   ?????
        list.add(c)
    .....
公共静态列表getQuoted(InputStream in)引发IOException{
INTC;
LinkedList myList=新建LinkedList();
试一试{
而((in.read())!=“\”){?????
列表.添加(c)
.....
while条件是一个问题,当然引号是
String
,而
int
是需要的。

“\”“
是一个字符串。如果只需要
的字符表示,请使用

请注意,如果您的文件不是ASCII格式,则代码将无法按预期工作(并且不同字符集之间的行为将不一致)(当然这取决于您的预期)

如果使用ASCII,则每个字符将占用文件中的一个字节,并读取一个字节(因此是一个ASCII字符),因此一切正常

如果在每个字符占用超过1字节的字符集中(例如Unicode),每次读取的字符数将少于一个字符,您的代码可能无法按预期工作

(建议使用
字符
而不是
字节
),因为它将读取字符,而不仅仅是字节

此外,您还缺少一项作业:

while ((in.read()) != '"')
应该是

while ((c = in.read()) != '"')

InputStream
不能包含引号。
InputStream
s以字节为单位处理,引号是字符。您需要确定是处理二进制数据还是字符数据。如果您处理字符数据,您应该使用
读卡器
@user2177334,请记住这个答案,如果您发现这没有帮助。