这是将一个文件的数据复制到第二个文件的代码
public class Writer
{
public static void main(String args[]) throws IOException
{
File f=new File("D:/test.txt");
FileReader fr=new FileReader(f);
char cbuff[]=new char[100];
int c=fr.read(cbuff);
System.out.println(c);
c=fr.read(cbuff);
System.out.println(c);
fr.close();
FileWriter fw=new FileWriter("D:/newTest.txt");
fw.write(cbuff);
fw.close();
}
}
输出是
67
-1
我的第一个问题是
我想知道 char 数组的大小是 1000 那么为什么 read 方法第二次返回 -1 。
我的第二个问题是
附件。到 [Java 文档] ( http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html#read%28java.nio.CharBuffer%29 )
or -1 if this source of characters is at its end
上面这行是什么意思?
最佳答案
I wanna know that size of char array is 1000 so why does read method returns -1 second time.
因为输入流不再包含要读取的字符。请注意,如果有第二次读取,您将覆盖已经读入数组的内容。
并且您的 javadoc 指向了错误的方法。您使用the read()
method taking a char[]
as an argument 。一个CharBuffer
不是 char[]
!
最后(您最近问过有关此类主题的问题,我已经告诉过您),您应该指定用于读取文件和写入文件的编码。
关于java - 如何将数据读入 char 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22351536/