无法创建byte []数组的文件,反之亦然 - android

时间:2017-09-19 10:15:39

标签: android

我无法创建<clr-datagrid> <clr-dg-column>User ID</clr-dg-column> <clr-dg-column [clrDgField]="'name'">Name</clr-dg-column> <clr-dg-column>Allow access?</clr-dg-column> <clr-dg-column>Default User</clr-dg-column> <clr-dg-row *clrDgItems="let user of users; let index=index" [clrDgItem]="user"> <clr-dg-cell>{{user.id}}</clr-dg-cell> <clr-dg-cell>{{user.name}}</clr-dg-cell> <clr-dg-cell> <div class="checkbox"> <input type="checkbox" id="access-{{index}}"> <label for="access-{{index}}"></label> </div> </clr-dg-cell> <clr-dg-cell> <div class="radio-inline"> <input type="radio" name="default-radios" id="default-{{index}}"> <label for="default-{{index}}"></label> </div> </clr-dg-cell> <!-- Example using a wrapper component --> <!--<detail-wrapper *clrIfExpanded ngProjectAs="clr-dg-row-detail" class="datagrid-row-flex"></detail-wrapper>--> <clr-dg-row-detail *clrIfExpanded [clrDgReplace]="true"> <clr-dg-cell>{{user.id}}</clr-dg-cell> <clr-dg-cell>{{user.name}}</clr-dg-cell> <clr-dg-cell></clr-dg-cell> <clr-dg-cell></clr-dg-cell> </clr-dg-row-detail> </clr-dg-row> <clr-dg-footer>{{users.length}} users</clr-dg-footer> </clr-datagrid> 文件数组,并重新创建byte[]到文件。文件从byte[]数组创建,其大小与之前的大小完全相同,但无法打开它。它说不支持格式化。同样,我必须做更多的文件,如视频,音频,文档等。我已经尝试过堆栈溢出但没有成功的答案。

这是我的代码: - 将图像转换为byte[]数组

byte[]

public static byte[] getBytesFromImage() { FileInputStream in; try { File photo = new File(Environment.getExternalStorageDirectory(), "nature.jpg"); FileInputStream fis = new FileInputStream(photo); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] b = new byte[1024]; for (int readNum; (readNum = fis.read(b)) != -1;) { bos.write(b, 0, readNum); } bMapArray = bos.toByteArray(); } catch (Exception e) { e.printStackTrace(); } return bMapArray; } 数组转换为图像文件。

byte[]

1 个答案:

答案 0 :(得分:0)

你的代码还可以, 也许你只需要刷新你的ByteArrayOutputStream

for (int readNum; (readNum = fis.read(b)) != -1;) {
        bos.write(b, 0, readNum);
    }
    bMapArray = bos.toByteArray();

    bos.flush();
    bos.close();