cassandra row fetch给出了垃圾字符

时间:2015-04-20 05:44:52

标签: java cassandra bigdata

我正在学习Cassandra并编写了一个可以从DB中读取文件的restclient。

以下是我从数据库中检索数据的代码。

        ResultSet rs = getFile(fileName);
        Row row=rs.one();

        ByteBuffer filecontent =row.getBytes("file_content");
        byte[] data = new byte[filecontent.remaining()];
        ByteBuffer bb = filecontent.get(data);

        String filelocation = row.getString("file_location");
        String filename = row.getString("filename");

        ByteArrayInputStream filecontentfromDB= new ByteArrayInputStream(bb.array());
        File file=writeToFile(filecontentfromDB,fileName);

        if (rs == null) {
            return null;
        }
        return file;

当我查看返回的文件时,我在开头找到一些垃圾字符,然后是我的文件内容。

请帮我删除垃圾数据

1 个答案:

答案 0 :(得分:0)

Yipee,找到了一个解决方案,下面的行应该被替换

String filelocation = row.getString("file_location");
        String filename = row.getString("filename");

        ByteArrayInputStream filecontentfromDB= new ByteArrayInputStream(bb.array());

<强>与

String filelocation = row.getString("file_location");
        String filename = row.getString("filename");
String bb = new String(filecontent.array(), filecontent.arrayOffset() + filecontent.position(), filecontent.remaining());
        ByteArrayInputStream filecontentfromDB= new ByteArrayInputStream(bb.getBytes());

有效。