Java 读取不同类型的文件-Fuse

Java 读取不同类型的文件-Fuse,java,file-io,fuse,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;

我正在编写一个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;
}
但它不能正确读取所有文件类型。请参阅下面的图片,其中显示了打开文件时创建的错误消息

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

有人能修改我的代码,使它能普遍读取所有类型的文件吗


-后来添加-

(熔丝日志)堆栈跟踪

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 office阅读器、图片查看器等)的接口,在读取文件时会发出错误消息,因为我的自定义fuse文件系统读取文件的方式错误。

最好提供堆栈跟踪,而不是图像。此外,我没有看到链接的图像。您正在将文件读入字符串。这仅适用于编码正确的文本文件。您只能对原始字节进行操作。@Banthar,我将读取不同类型的文件,是否有一种方法使我的程序能够读取不同类型的文件,而不仅仅是文本。Java实现似乎有几种融合。你在用哪一个?@Bantar Fuse JNA。但这不是fuse的问题,问题在于我的文件读取java代码。