0

複数のコンポーネント テキストを 1 つのファイルに保存するというアイデアが得られました。しかし今、そのファイルを開くと、ファイル内のすべてのテキストが 1 つのコンポーネントのテキストだけになります。ここにコードがあります、

                        <s:click>

                            var f:File = File.desktopDirectory;

                            f.browseForSave("Save As");

                            f.addEventListener(Event.SELECT, function (event:Event):void {

                            var stream:FileStream = new FileStream();

                            stream.open((event.target as File),FileMode.WRITE);

                            stream.writeUTFBytes(rte.htmlText);

                            stream.writeUTFBytes(ta.text);

                            stream.writeUTFBytes(rich.text);

                            stream.close();

                            });

                        </s:click>

                    </s:Button>

                        <s:click>

                            var f:File = File.desktopDirectory;

                            f.browseForOpen("Select file to open", []);

                            f.addEventListener(Event.SELECT, function (event:Event):void {

                            var fs:FileStream = new FileStream();

                            fs.open(event.target as File, FileMode.READ);

                            rte.htmlText = fs.readUTFBytes(fs.bytesAvailable);

                            ta.text = fs.readUTFBytes(fs.bytesAvailable);

                            fs.close();

                            });

                        </s:click>

                    </s:Button>

いくつかの提案?

4

1 に答える 1

0

あなたはすでにfsからすべてのストリームを読んでいます。一度実行するとすぐに fs.readUTFBytes(fs.bytesAvailable); 読み取りヘッダー/ポインターはファイルの終わりを示すため、次の行で bytesAvailable はゼロになります。

次のコードを使用することをお勧めします。

<s:click>
    var f:File = File.desktopDirectory;
    f.browseForOpen("Select file to open", []);

    f.addEventListener(Event.SELECT, function (event:Event):void {
        var fs:FileStream = new FileStream();
        fs.open(event.target as File, FileMode.READ);

        var dataStr:String = fs.readUTFBytes(fs.bytesAvailable);

        rte.htmlText = dataStr;
        ta.text      = dataStr;

        // if you want only the non formatted text use:   ta.text = rte.text;
        fs.close();
});
</s:click>
于 2012-09-03T11:46:30.567 に答える