读取不同类型的文件 - 使用

时间:2014-06-17 20:51:31

标签: java file-io fuse

我正在编写Java应用程序(FUSE文件系统)。此应用程序从文件系统读取不同文件类型的文件,如文本,图像,PDF,音频和视频文件..等等。

在文件读取方法中,我编码为:

    public int read(final String path, final ByteBuffer buffer, final long size, final long offset, final FileInfoWrapper info)
{

    String contentOfFile=null;
    try {
        contentOfFile= readFile(mirroredFolder+path);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    final String s = contentOfFile.substring((int) offset,
            (int) Math.max(offset, Math.min(contentOfFile.length() - offset, offset + size)));
    buffer.put(s.getBytes());
    return s.getBytes().length;
}

但它没有正确读取所有文件类型。请参阅下面的图片,其中显示了打开文件时创建的错误消息。

error in reading http://i61.tinypic.com/290roe1.png

如图所示,代码只能正确读取一种类型的文件文件,其余文件会弹出错误消息。

有人可以修改我的代码,以便它可以普遍读取所有类型的文件。


- 后来添加 -

(保险丝日志)堆栈跟踪

Jun 18, 2014 11:13:36 AM org.organization.upesh.FirstMaven.SFS_360 getattr
INFO: [/Untitled Folder/picture.png] Method succeeded. Result: 0
Jun 18, 2014 11:13:38 AM org.organization.upesh.FirstMaven.SFS_360 open
INFO: [/Untitled Folder/picture.png] Method succeeded. Result: 0
Jun 18, 2014 11:13:38 AM org.organization.upesh.FirstMaven.SFS_360 read
INFO: [/Untitled Folder/picture.png] Method succeeded. Result: 0
Jun 18, 2014 11:13:38 AM org.organization.upesh.FirstMaven.SFS_360 flush
INFO: [/Untitled Folder/picture.png] Method succeeded. Result: 0
Jun 18, 2014 11:13:38 AM org.organization.upesh.FirstMaven.SFS_360 lock
INFO: [/Untitled Folder/picture.png] Method succeeded. Result: -38
release called: Path=/Untitled Folder/picture.png
Jun 18, 2014 11:13:38 AM org.organization.upesh.FirstMaven.SFS_360 release
INFO: [/Untitled Folder/picture.png] Method succeeded. Result: 0

程序不会抛出任何错误。但它的应用程序界面(即pdf阅读器,libre办公室阅读器,图片查看器等)在读取文件时会出现错误信息,因为我的自定义fuse文件系统以错误的方式读取文件。

0 个答案:

没有答案