Java 如何在Alfresco中更新文件内容?

Java 如何在Alfresco中更新文件内容?,java,alfresco,Java,Alfresco,我的java支持的webscript将存储库中的文件复制到临时文件夹,并根据需要对其进行编辑。在其工作期间,将生成新内容,并且必须将其写入已创建的临时文件中 但有一个问题:下面的第一个或第二个代码都不会更新文件的内容 ContentWriter contentWriter = this.contentService.getWriter(tempFile, ContentModel.PROP_CONTENT, true); conten

我的java支持的webscript将存储库中的文件复制到临时文件夹,并根据需要对其进行编辑。在其工作期间,将生成新内容,并且必须将其写入已创建的临时文件中

但有一个问题:下面的第一个或第二个代码都不会更新文件的内容

ContentWriter contentWriter = this.contentService.getWriter(tempFile,
                               ContentModel.PROP_CONTENT, true);
contentWriter.putContent(content);
第二点:

`
WritableByteChannel byteChannel = contentWriter.getWritableChannel();
ByteBuffer buffer = ByteBuffer.wrap(content.getBytes());
byteChannel.write(buffer);
byteChannel.close();
`
如何更新文件内容?

这对我很有用:

ContentWriter contentWriter = contentService.getWriter(noderef, ContentModel.PROP_CONTENT, true);
        contentWriter.setMimetype("text/csv");
        FileChannel fileChannel = contentWriter.getFileChannel(false);
        ByteBuffer bf = ByteBuffer.wrap(logLine.getBytes());
        try {
            fileChannel.position(contentWriter.getSize());
            fileChannel.write(bf);
            fileChannel.force(false);
            fileChannel.close();
        } catch (IOException e){
            e.printStackTrace();
        }
我正在向现有文件追加一行,因此logLine是追加字符串。

这对我很有用:

ContentWriter contentWriter = contentService.getWriter(noderef, ContentModel.PROP_CONTENT, true);
        contentWriter.setMimetype("text/csv");
        FileChannel fileChannel = contentWriter.getFileChannel(false);
        ByteBuffer bf = ByteBuffer.wrap(logLine.getBytes());
        try {
            fileChannel.position(contentWriter.getSize());
            fileChannel.write(bf);
            fileChannel.force(false);
            fileChannel.close();
        } catch (IOException e){
            e.printStackTrace();
        }

我正在向现有文件追加一行,因此logLine是追加字符串。

我想替换临时文件上的全部内容。您的代码不适用于它。嗨,如果您想替换所有内容,请不要使用以下行:fileChannel.position(contentWriter.getSize());然后它将默认使用0作为起始位置。它不工作。我试图注释这一行并将其设置为零:fileChannel.position(0)。Alfresco Web Client(/Alfresco)显示文件已修改(日期更改),但其内容未更改。奇怪的是,它确实适用于我,您确定您的ByteBuffer不是空的吗?是否打印了content.getBytes()?ByteBuffer不是空的,它由脚本更改的正确数据填充…我想替换临时文件上的全部内容。您的代码不适用于它。嗨,如果您想替换所有内容,请不要使用以下行:fileChannel.position(contentWriter.getSize());然后它将默认使用0作为起始位置。它不工作。我试图注释这一行并将其设置为零:fileChannel.position(0)。Alfresco Web Client(/Alfresco)显示文件已修改(日期更改),但其内容未更改。奇怪的是,它确实适用于我,您确定您的ByteBuffer不是空的吗?是否已打印内容。getBytes()?ByteBuffer不是空的,它由脚本更改的正确数据填充。。。