Anonymous user
File input/output: Difference between revisions
→[[Toka]]: Changed to work with Toka R1; main example now more readable
(Explain atomically:) |
(→[[Toka]]: Changed to work with Toka R1; main example now more readable) |
||
Line 784:
This is one method, which works with any type of file:
{
{
[ "W" file.open to dest ] is open-
}
[ obtain-size allocate-buffer ]
[ source @ dup 0 <> [ file.close 0 ] ifTrue drop▼
} is create-buffer
[ source dest and 0 <> ] is
[ open-files
} is
[ source buffer size file.read drop ] is read-source
[ dest buffer size file.write drop ] is write-dest
[ prepare [ read-source write-dest close-files ] ifTrue ]
} is copy-file
And a much simpler way for plain text files, making use of file.slurp:
Line 806 ⟶ 811:
[ ( source dest -- )
swap file.slurp dup 0 <>
[ >r "W" file.open dup r>
] is copy-file
|