10
$\begingroup$

Note: this is fixed in version 9.


I want to put expressions into multiple files simultaneously, with the following code:

tex1 = OpenWrite["test1.txt"];
tex2 = OpenWrite["test2.txt"];

Write[{tex1, tex2}, "anything"]

Close[tex1];
Close[tex2];

Why is test2.txt empty? Why does it work correctly with WriteString instead of Write? Now of course I can always Map the Write statements over streams, or just go with WriteString, but since it would be convenient to use a list as Write's first argument I did post this issue. Is it a bug?

$\endgroup$
4
4
$\begingroup$

This is a bug and fixed in the development version. Thanks for pointing it out.

$\endgroup$
7
$\begingroup$

According to the docs, both Write and WriteString should accept an "output channel," which is just a list of streams. On my system (v.8 on MacOS), Write behaves the same way as on your system when outputting anything, but WriteString behaves as expected.

Similarly, this

Write[{tex1, tex2}, 3, 4];

also misbehaves in the same manner. So, the issue isn't limited to string output.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.