Well, the first thing to note is that your program isn't introducing a new problem. If the original file was sent from a Unix to Windows machine, the user would still have to deal with it. Many text editors will handle this gracefully. In addition, savvy Unix users will be aware of tools such as "dos2unix" and "unix2dos" if the program they want to read the file in is clueless.
Now, you know that solving this problem is optional. The simplest approach is to read/write file in binary mode, which should result in an identical file.
Of course, you might want to save the user the hassle I mentioned earlier. However, by choosing to do this you also have to deal with a much harder problem: determining if the file is a text file to be translated or a binary file that must be left "as is", or a text file that requires newline encoding. One way is to ask the user (or force them to provide the information e.g. a command line switch), which is great if your target audience is technical.