次のコードでini4jを使用して、Groovyのiniファイルに複数値オプションを追加しようとしています(いくつかのバリアントを試しました):
import org.ini4j.Wini
List valuesList = [ 'val1’, ‘val2’, ‘val3' ]
( new Wini( new File( "test.ini" ) ) ).with{
valuesList.each{
put( 'sectionNa'sectionName','optionName', it)
}
store()
}
import org.ini4j.Wini
List valuesList = [ 'val1’, ‘val2’, ‘val3' ]
( new Wini( new File( "test.ini" ) ) ).with{
Section sectionObject = get( ‘sectionName’ )
sectionObject .put( 'optionName', ‘val1’ )
sectionObject .put( 'optionName', ‘val2’ )
sectionObject .put( 'optionName', ‘val3’ )
}
store()
}
次のようなiniファイルを取得しました。
[sectionName]
optionName = val3
しかし、私は取得したい:
[sectionName]
optionName = val1
optionName = val2
optionName = val3
私の問題を解決する方法を教えてください。前もって感謝します!
更新 1
私はまだよりエレガントなソリューションを待っています。しかし、以下の直接のiniファイル編集を作成しました。フィードバックをお寄せください:
List newLines = []
File currentFile = new File( "test.ini" )
List currentLines = currentFile.readLines()
int indexSectionStart = currentLines.indexOf( 'sectionName' )
(0..indexSectionStart).each{
newLines.add( currentLines[ it ] )
}
List valuesList = 'val1,val2,val3'.split( ',' )
valuesList.each{
newLines.add( "optionName = $it" )
}
( indexSectionStart + 1 .. currentLines.size() - 1 ).each{
newLines.add( currentLines[ it ] )
}
File newFile = new File( "new_test.ini" )
if ( newFile.exists() ) newFile.delete()
newLines.each {
newFile.append( it+'\n' )
}
古いファイルを削除し、新しいファイルの名前を変更するだけです。標準ファイルにinsertLine()のようなメソッドが見つからなかったので実装しました