假設乙個寫入xml檔案的上下文情景
//打算將這個dataset物件的內容寫入xml檔案中
dataset dataset = new dataset("example");
//首先以檔案流的形式開啟xml檔案
filestream fs = file.open(filename, filemode.openorcreate);
//而後將dataset的內容寫入該檔案流
dataset.writexml(fs, xmlwritemode.writeschema);
//寫入快取,關閉檔案
fs.close();
如上**在執行多次後很可能會出現異常,異常資訊為「根級別上的資料無效。」
這是由於多次執行過程中,若上次寫入的字串長度為100,那麼本次開啟的檔案流包含100個字元,而這次寫入的字串長度為90,那麼writexml方法會用這90個字元覆蓋檔案流中的前90個字元,而倒數10個字元卻未被覆蓋,依然保留著,成為乙個「小尾巴」。
如第一次寫入的內容是:
this is not a example
想在第二次寫入的內容是:
this is a example
那麼第二次寫入後,內容可能會變成
this is a example
ple>
注意最後一行留下的「尾巴」——ple>
為了解決這個問題,在每次寫入之前用setlength()方法清空開啟的檔案流即可,如下所示:
//打算將這個dataset物件的內容寫入xml檔案中
dataset dataset = new dataset("example");
//首先以檔案流的形式開啟xml檔案
filestream fs = file.open(filename, filemode.openorcreate);
//將檔案流長度設為0,即可清空其中的內容
fs.setlength(0);
//而後將dataset的內容寫入該檔案流
dataset.writexml(fs, xmlwritemode.writeschema);
//寫入快取,關閉檔案
fs.close();
寫xml檔案時標頭檔案的編碼
當我們寫乙個xml檔案時會設定內容的xml編碼,但是生成之後開啟來看,生成的xml標頭檔案編碼竟然還是沒有發生改變 那麼怎麼把它變成呢 document document documenthelper.createdocument document.setxmlencoding gbk 這個我們大家...
python 寫xml檔案的操作
要生成的xml檔案格式如下 sample xml thing ma xiaoju springs widgets,inc.first i think widgets are greate.you should buy lots of them forom spirngy widgts,inc fro...
FileWriter檔案檔案字元輸出流寫入儲存資料
其中,流關閉之後再呼叫會報ioexception 其中,與檔案字元輸入流 寫出 讀取資料 和 位元組輸出流 寫入 儲存資料 不同的是,要先flush 方法,將記憶體緩衝區的資料重新整理到硬碟檔案中 close 方法會自動呼叫flush 方法將記憶體緩衝區的資料重新整理到硬碟檔案中 執行結果 e.tx...