【发布时间】:2015-05-09 13:47:15
【问题描述】:
所以我必须将输入字符流转换为输出字节流,并将输入字节流转换为字符输出流。我尝试过这样的事情:
字符流转字节流(这里我必须使用 FileReader 和 FileOutputStream):
import java.io.*;
public class Example
{
public static void main( String[ ] args ) throws IOException
{
FileReader in = new FileReader( "input.txt" );
FileOutputStream out = new FileOutputStream( "test.txt" );
int c;
while ((c = in.read()) != -1)
{
out.write(c);
}
in.close();
out.close();
}
}
字节流转字符流(这里我必须使用FileInputStream和FileWriter):
import java.io.*;
public class Example
{
public static void main( String[ ] args ) throws IOException
{
FileInputStream in = new FileInputStream( "input.txt" );
FileWriter out = new FileWriter( "test.txt" );
int c;
while ((c = in.read()) != -1)
{
out.write(c);
}
in.close();
out.close();
}
}
没关系还是我有什么问题?
【问题讨论】:
-
它是否按预期工作?
-
这真的不会像你想象的那样做;你知道字符编码吗?
-
你告诉我们它是否正常:它是否有效,什么时候坏了?
-
如果两个文件都是“.txt”,那就没问题了。但我没有尝试过其他类型。 @fge“字符编码”是什么意思?
-
@Mateusz 每个文件,无论其类型是什么,都包含字节。我觉得你在这里要做的就是复制一个文件。您尝试做的唯一目的是更改文件的字符编码。即 Unicode 字符转换为字节以便写入文件的方式。例如,读取为 UTF8,写入为 UTF16,反之亦然。如果这不是你想要做的,那么你的问题没有多大意义,你的代码也没有多大意义。你不能假装一个字符是一个字节,一个字节是一个字符。
标签: java filereader fileinputstream fileoutputstream filewriter