浅谈write(byte[] b)和write(byte[] b,int off,int len)的区别
相信大家都会用着2个方法吧,但是真正理解他们的机制相信不多,现在我以代码来解释他们的机制及区别
举例新建一个类
package io;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
byte[] b = new byte[15];
byte bnum = 110;
for (int i = 0; i < b.length; i++) {
b[i] = bnum++;
}
ByteArrayInputStream bi = new ByteArrayInputStream(b);
FileOutputStream fos;
try {
System.out
.println("-------------用write(byte[] b)来写入文件---------------");
fos = new FileOutputStream(new File("C:\\文件1.txt"));
int i = 0;
byte[] buffer = new byte[10];
System.out.println("写入数据如下:");
while ((i = bi.read(buffer)) > 0) {
p(buffer);
fos.write(buffer);
}
System.out
.println("-------------用write(byte[] b,int off,int len)来写入文件---------------");
bi.reset();
fos = new FileOutputStream(new File("C:\\文件1.txt"));
i = 0;
buffer = new byte[10];
System.out.println("写入数据如下:");
while ((i = bi.read(buffer)) > 0) {
p(buffer);
fos.write(buffer, 0, i);
}
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void p(byte[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print((char) arr[i] + ",");
}
System.out.println();
}
}
打印结果如下:
-------------用write(byte[] b)来写入文件---------------
写入数据如下:
n,o,p,q,r,s,t,u,v,w,
x,y,z,{,|,s,t,u,v,w,
-------------用write(byte[] b,int off,int len)来写入文件---------------
写入数据如下:
n,o,p,q,r,s,t,u,v,w,
x,y,z,{,|,s,t,u,v,w,
其中写入到“文件1.txt”的内容为:nopqrstuvwxyz{|stuvw
其中写入到“文件1.txt”的内容为:nopqrstuvwxyz{|
分享到:
相关推荐
java集合类的文件,//Student s = new Student(); s = null;... void write(byte[] b,int off,int len) 写出某个范围的字节道数组b中 b 数据写出的数组 off 第一个写出字节在b中的偏移量
Write Off
三菱FX系列PLC编程口通讯程序之字节读取(发布源码)
public synchronized int write(byte[] b,int nStart,int len){ int n=-1; try{ rf.write(b,nStart,len); n=len; }catch(IOException ioe){ ioe.printStackTrace(); } return n; } public ...
PEP人教版小学英语五年级下册Unit 5 B Read and write教学反思.pdf
output.write(b, 0, len); } output.flush(); output.close(); input.close(); } if(temp.isDirectory()){//如果是子文件夹 copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]); } } } ...
int len; DES des = new DESCryptoServiceProvider(); des.Key = Key64; des.IV = IV64; TextBox3.Text = des.Key[0].ToString(); StreamWriter w = new StreamWriter(skey); w.Write(des.Key[0]); w.Flush...
void write(byte[] b, int off, int len) 将 len字节从位于偏移量 off的指定字节数组写入此文件输出流。 最常用 * //2. void write(byte[] b)将 b.length个字节从指定的字节数组写入此文件输出流。 ...
int WINAPI sio_write(int port, char *buf, int len); int WINAPI sio_flush(int port, int func); long WINAPI sio_iqueue(int port); long WINAPI sio_oqueue(int port); int WINAPI sio_lstatus(int port); int ...
java中实现复制文件和文件夹 ... outBuff.write(b, 0, len); } // 刷新此缓冲的输出流 outBuff.flush(); //关闭流 inBuff.close(); outBuff.close(); output.close(); input.close(); }
//// byte[] b = new byte[1024]; //// while(in.read(b) != -1){ //// out.write(b); //// } // //操作流 法三 // byte[] b = new byte[1024]; // int length = 0; // while((length = in.read(b)...
int b=3; int arr[] = {6, 7, 8, 9, 10}; int *ptr = arr; *(ptr++) += 123; printf("%d, %d\n", *ptr, *(++ptr)); return 0; } 2. 下面程序的结果是多少? #include int main(int argc, char* argv[]) { ...
部分题目如下所示: 1.变量名的合法性 (1)所有的标识符只能有字母、数字和下划线组成,且第一个字符必须为字母或下划线 ...4.在“int[ , ,] B=new int[3, 2, 4];”数组声明语句中,数组B包含元素的个数为 3*2*4=24
多功能进制转换,实现二、八、十、十六进制的转换
本文主要讲述cache中write back和write through名词解释
timewrite <outfile> [sync] 不得变更程序的名字和使用方法。sync参数为可选,若有,则输出文件用O_SYNC打开。 例: timewrite 表示输出文件f2不用O_SYNC 打开。 timewrite f1 sync 表示输出文件f1用O_SYNC 打开。...
信息安全_数据安全_Single byte write to RCE:exploit 安全实践 信息安全 安全防御 云安全 安全体系
微软书籍Write Clean Code 微软书籍Write Clean Code 微软书籍Write Clean Code 微软书籍Write Clean Code
Read and Write Utility
Simple interrupt with Toggle switch. Write with WINAVR on eclipse.