Titanium Creating Image file:file.write(blob)没有创建正确的文件

时间:2012-02-21 12:09:42

标签: android titanium titanium-mobile

我正在尝试使用Titanium 1.8.1读取.PNG文件 这是我读取文件的代码。

var f = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory, 'KS_nav_views.png');
var blob = f.read();

当我使用上面的blob对象创建新文件时,这样创建的新文件与原始文件不同。 这是我创建新文件的代码。

var outputDir = Titanium.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory,'output');
outputDir.createDirectory();
var newFile = Titanium.Filesystem.getFile(outputDir.nativePath,'outFile.png');
var test = newFile.write(blob);
if ( test === false){
      Ti.API.debug("Write Error");
}
Ti.API.debug("Write complete? "  + test);

创建了outFile.png,但问题是它不是有效的图像文件。此外,文件的大小约为53字节,而我的输入文件是1kb。

如果我们使用简单的文本文件作为输入并尝试创建重复的输出文件,则相同的代码可以正常工作。

2 个答案:

答案 0 :(得分:1)

你不需要做read()这样做:

var t = Titanium.Filesystem.getFile(tempDataDirectory, 'a.json');
var o = Titanium.Filesystem.getFile(onlineDataDirectory, 'b.json');
o.write(t);

答案 1 :(得分:0)

完成书写后,您需要关闭文件。

test.close();