【发布时间】:2015-02-15 10:01:04
【问题描述】:
我正在编写一个程序来复制大文件,所以我想读取特定数量的字节并写入另一个文件。我想复制文件并获得相同的字节数。但我越来越多了。另外,我还希望文件的内容保持不变。我在这里做错了什么?如果有人能解释为什么我会收到这个额外的文字,那就太好了。
test.txt
sometext sometext sometext sometext
sometext sometext sometext sometext
sometext sometext sometext sometext
sometext sometext sometext sometext
实践.java
public class Practice{
public static void main(String[] args){
byte[] buffer = new byte[100];
try{
FileInputStream f = new FileInputStream("test.txt");
FileWriter writer = new FileWriter("copy_test.txt");
int b;
while ((b=f.read(buffer)) != -1 )
writer.write(new String(buffer));
writer.close();
} catch(Exception e){
e.printStackTrace();
}
}
}
copy_test.txt
sometext sometext sometext sometext
sometext sometext sometext sometext
sometext sometext sometext sometext
sometext sometext sometext sometext
metext sometext sometext
sometext sometext sometext
【问题讨论】:
-
呃,你为什么不用
Files.copy()? -
另外,您使用
InputStream作为源,使用Writer作为目标?嗯?基本上你读的是苹果,但写的是橘子。 -
@fge 因为它只是一个示例代码,实际上我正在将文件从服务器传输到客户端。所以我不能使用 Files.copy()。
-
取决于服务器。 java.nio.file API 允许
FileSystems 超越任何东西。 See here 例如。请注意Files.copy()can copy from anInputStreamto aPathas well.
标签: java file byte filestream