文件类型统计
文件复制
目录复制
字节流的使用 intputstream outputstream
输入流 intputstream,用于读取文件
输出流 outputstream ,用于写入文件
写入文件时,获得字节的整形类型进行存储
字节流实现文件复制
BufferInputstream 和BufferOutstream,提高缓存速度
try(var is =new BufferedInputStream(new FileInputStream("21.txt")); var
os= new BufferedOutputStream(new FileOutputStream("ok.txt")))
自建缓存类型对文件进行输入输出
文件拷贝
设置的缓存内存要适量,太大和太小会造成读取时间的加长,官方默认的是8KB。
public static void main(String[] args) {
try (var is = new FileInputStream("off.jpg"); var os = new FileOutputStream("ss.jpg")) {
//以8kb的缓存对文件的创建和复制
long ss = System.currentTimeMillis();
//设置初始值为8kb
byte[] bs = new byte[1024*8];
int len = 0;
//判断len的字节长度,并将bs的内容输入到ss中
while((len=is.read(bs))>=0){
os.write(bs,0,len);
}
System.out.println(System.currentTimeMillis()-ss);
} catch (Exception e) {
//异常提醒
e.printStackTrace();
}
}
在进行文件的添加操作时,使用OutputFile进行文件内容添加时,会进行内容覆盖,在后边加true时,会在文件内容最后进行添加操作
//判断是不是同一个文件
public static void main(String[] args) {
//output这个属性会进行新加文件,会进行覆盖重写,在加true的情况下,进行添加操作
try(var os= new FileOutputStream("ff1.txt",true)){
os.write("hello世界\s\n".getBytes());
}catch(Exception e){
//异常提醒
e.printStackTrace();
}
}
判断是不是同一个文件,主要是用于文件后缀的改变。生成固定的字符串类型判断文件类型。
进行固定字符串的生成:
public static void main(String[] args) {
String f = "off.jpg";
/* if (f.isEmpty()){
}else {
System.out.println(f);
}
*/
try(var is =new FileInputStream(f);){
byte[] sd =new byte[5];
is.read(sd);
//重点代码
StringBuilder sub = new StringBuilder();
for(byte b :sd){
sub.append(String.format("%x",b));
}
System.out.println(sub);
//到此为止
System.out.println(Arrays.toString(sd));
}catch(Exception e){
//异常提醒
e.printStackTrace();
}
}