首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NewLines在写信给ByteArrayOutputStream时丢失

NewLines在写信给ByteArrayOutputStream时丢失
EN

Stack Overflow用户
提问于 2017-03-06 07:58:05
回答 2查看 1.4K关注 0票数 0

我正在尝试使用Socket读取txt文件并从其中传递数据,但在编写输出流时,我似乎缺少了换行符。

我的txt文件是:

代码语言:javascript
复制
{
  "firstName": "John",
  "lastName": "Smith",
  "isAlive": true,
  "age": 25,
  "address": {
    "streetAddress": "21 2nd Street",
    "city": "New York",
    "state": "NY",
    "postalCode": "10021-3100"
  }
}

ByteArrayOutputStream:

{ "firstName":"John","lastName":"Smith","isAlive":true,"age":25,"address":{% "streetAddress":"21 21“,"city":"New York","state":"NY", "postalCode":"10021-3100“}

Scaner:

代码语言:javascript
复制
private byte[] readFile(String path) throws IOException {

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    DataOutputStream out = new DataOutputStream(baos);

    File file = new File(path);
    Scanner scanner = new Scanner(file);

    while (scanner.hasNextLine()){
        out.writeUTF(scanner.nextLine());
    }

    byte[] bytes = baos.toByteArray();
    return bytes;
}

编辑:

代码语言:javascript
复制
System.getProperty("line.separator"); 

帮助我创建新行,但在baos中仍然有一些无效字符

代码语言:javascript
复制
System.out.println(new String(baos.toByteArray()));

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-07 16:07:08

看来.flush()帮我清除了无效字符..。

代码语言:javascript
复制
private byte[] readFile(String path) throws IOException {

    DataOutputStream out = new DataOutputStream(socket.getOutputStream());

    File file = new File(path);
    Scanner scanner = new Scanner(file);

    while (scanner.hasNextLine()){
        out.writeUTF(scanner.nextLine() + System.getProperty("line.separator"));
    }

    byte[] bytes = out.toByteArray();
    out.flush();
    return bytes;
}

What is the purpose of flush() in Java streams?

票数 0
EN

Stack Overflow用户

发布于 2017-03-06 08:42:58

使用下面的代码重写代码

代码语言:javascript
复制
while (scanner.hasNextLine()){
        out.writeUTF(scanner.nextLine()+"\n");
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42620309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档