InputStream解析异常

本文介绍了解析InputStream中遇到的一个特定异常:非法未加引号的字符,并提供了有效的解决方案。通过对比两种不同的读取方式,展示了如何使用BufferedReader来避免此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解析InputStream异常,报错如下:

com.fasterxml.jackson.core.JsonParseException: Illegal unquoted character ((CTRL-CHAR, code 0)): has to be escaped using backslash to be included in string value

 at [Source: (String)"{"code":"0","msg":"Stored in"[truncated 552 chars]; line: 1, column: 30]

实际解析后应为"{"code":"0","msg":"Stored in upload"}";

使用的解析方式为

 while ((length = inputStream.read(bufferBytes)) != -1) {

           String s = new String(bufferBytes, Charset.forName("utf-8"));

           sBuffer.append(s);

       }

解析出现异常,调整解析方式,使用BufferedReader

  BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
        while ((line = br.readLine()) != null) {
            sb.append(line);
        }

解析成功;

### 苍穹外卖地址解析异常解决方案 对于苍穹外卖配置/运行过程中遇到的`Could not resolve placeholder 'sky.shop.address' in value "${sky.shop.address}"`错误,这通常意味着应用程序无法找到指定属性文件中的占位符值。该问题可能源于多个方面: #### 属性文件路径不正确 如果应用未能加载正确的`.properties`或`.yml`文件,则可能导致占位符未被替换。应确认资源目录下存在对应的配置文件,并且其位置符合Spring Boot等框架的要求[^1]。 #### 占位符名称拼写错误 检查代码中使用的变量名是否与实际定义的一致,任何大小写的差异都可能会引起此类问题。确保`${sky.shop.address}`在配置文件中有确切匹配项。 #### 外部化配置缺失 有时开发者会选择将敏感信息存储于外部源(如环境变量),此时需验证这些设置已正确定义并生效。例如,在Linux系统上可以通过命令`export sky_shop_address="your_value"`来临时设定;而在Windows则可通过控制面板->系统->高级系统设置->环境变量完成相同操作。 针对上述情况,建议采取如下措施以解决问题: - 审查项目的资源配置结构; - 对比不同版本间的变更记录寻找潜在修改点; - 尝试打印日志输出当前读取到的所有属性列表用于调试目的。 ```java // 打印所有可用属性供排查使用 Properties props = new Properties(); try (InputStream input = new FileInputStream("application.properties")) { props.load(input); Set<String> keys = props.stringPropertyNames(); for (String key : keys) { System.out.println(key + "=" + props.getProperty(key)); } } catch (IOException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值