java 写文件while,帮我解释一下。
InputStreaminput;//要写的数据OutputStreamoutput;Filefile;creatdir(path);//建文件目录;file=creat...
InputStream input; //要写的数据
OutputStream output;
File file;
creatdir(path); //建文件目录;
file = creatfile(path + filename);建文件 -和上面一行都是自定义方法。
output = new FileOutputStream(file);
byte buffer[] =new byte[4*1024];
while((input.read(buffer)) !=-1){
output.write(buffer);
}
while条件是什么意思,为什么是read。它里面有数据吗?
output.write(buffer);这句为什么是写到buffer里,它怎么保存到文件里的? 展开
OutputStream output;
File file;
creatdir(path); //建文件目录;
file = creatfile(path + filename);建文件 -和上面一行都是自定义方法。
output = new FileOutputStream(file);
byte buffer[] =new byte[4*1024];
while((input.read(buffer)) !=-1){
output.write(buffer);
}
while条件是什么意思,为什么是read。它里面有数据吗?
output.write(buffer);这句为什么是写到buffer里,它怎么保存到文件里的? 展开
展开全部
read从input输入流读取数据,数据当read读取不到数据的时候他就返回-1;判断数据有没读取结束;output就是文件输出流,new FileOutputStream(file),file就是你写入文件;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.buffer是用来缓存input.read(buffer)操作当前读取的数据的。
2.如果已经读取完毕,input.read(buffer)操作就会返回-1。这样while循环就不会无限执行下去啦。
3.output输出流已经和你定义的file形成了关连,所以output.write(buffer)操作会把刚才读取之后保存到buffer中的数据写到文件中。
2.如果已经读取完毕,input.read(buffer)操作就会返回-1。这样while循环就不会无限执行下去啦。
3.output输出流已经和你定义的file形成了关连,所以output.write(buffer)操作会把刚才读取之后保存到buffer中的数据写到文件中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的input输入流都没有初始化。
文件输出流有一个方法就是以byte[]为参数。整个while循环的意思就是先用输入流读内容,装满buffer数组,然后将这些内容写到输出流里。输出流是文件输出流,也就是间接地写到了指定的文件里。
文件输出流有一个方法就是以byte[]为参数。整个while循环的意思就是先用输入流读内容,装满buffer数组,然后将这些内容写到输出流里。输出流是文件输出流,也就是间接地写到了指定的文件里。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的input中该有东西吧?你代码里是没有的啊,
read(byte[] buffer)的意思:从输入流中读取一定数量的字节,并将其存储在缓冲区数组 buffer 中。这里读取的是原来那个文件里东西,并存储到buffer这个数组中。!=-1是当读取不到数据时就返回-1
output.writer(byte[] buffer) 将 b.length 个字节从指定的 byte 数组写入此输出流。
你要明白一点就是,这里的input不是说往指定文件里写东西,而是从源文件那里拿东西,output是往指定文件里放东西。这里有点不好理解。inputStream建立一个输入流,是指从指定文件那里输入到缓存,这里就是buffer数组,outputStream输出流是指把缓存的数据存储到指定文件里,
如果还有什么疑问可以补充问题!
read(byte[] buffer)的意思:从输入流中读取一定数量的字节,并将其存储在缓冲区数组 buffer 中。这里读取的是原来那个文件里东西,并存储到buffer这个数组中。!=-1是当读取不到数据时就返回-1
output.writer(byte[] buffer) 将 b.length 个字节从指定的 byte 数组写入此输出流。
你要明白一点就是,这里的input不是说往指定文件里写东西,而是从源文件那里拿东西,output是往指定文件里放东西。这里有点不好理解。inputStream建立一个输入流,是指从指定文件那里输入到缓存,这里就是buffer数组,outputStream输出流是指把缓存的数据存储到指定文件里,
如果还有什么疑问可以补充问题!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询