首页 > 其他分享 >8、IO相关

8、IO相关

时间:2022-12-08 10:32:48浏览次数:34  
标签:AAA 字节 java IO File new 相关 out


java.io中最重要的

1、  五个类:File、OutputStream、InputStream、Writer、Reader

2、  和一个接口:Serializable

 

 

File类

1、  操作文件与文件夹的类,

2、  RandomAccessFile,随机存取类,用来操作文件内容,如下

import java.io.File;
import java.io.RandomAccessFile;

publicclass hello{
publicstaticvoid main(String args[])throws Exception{
//创建文件夹
File dir =new File("C:"+ File.separator +"AAA");
dir.mkdir();
System.out.println("create dir AAA");
//判断是否文件夹
if(dir.isDirectory())System.out.println("AAA is a directory");

//创建文件
File f1 =new File("C:"+ File.separator +"AAA\\AAA.txt");
f1.createNewFile();
System.out.println("create file AAA.txt in AAA dir");
if(f1.isDirectory()==false)System.out.println("AAA.txt is not a directory");
File f2 =new File("C:"+ File.separator +"AAA\\BBB.txt");
f2.createNewFile();
System.out.println("create file BBB.txt in AAA dir");
if(f2.isDirectory()==false)System.out.println("BBB.txt is not a directory");

//获取文件夹下的文件列表
String[] files = dir.list();
for(int i=0; i<files.length; i++){
System.out.println("AAA dir has File : "+ files[i]);
}

System.out.println("10 seconds later delete file AAA.txt inAAA dir");
Thread.sleep(10*1000);
//删除文件
f1.delete();

//向文件中写入数据
RandomAccessFile raf =new RandomAccessFile(f2,"rw");
raf.writeBytes("hello kk");
raf.close();
}
}

 

 

字节流与字符流操作

1、  字节流,主要操作byte数组,使用InputStream、OutputStream类

2、  字符流,主要操作字符,一个字符两个字节,使用Reader、Writer类

3、  字符流的处理与字节流区别不大

a)        字符流不需要将数据转成byte类型

b)        字节流是直接操作文件内容

c)        字符流是先将数据加载到缓冲区(内存)中,再进行操作

d)        在程序中,优先使用字节流方式

字节流操作如下

import java.io.File;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.FileInputStream;

publicclass hello{
publicstaticvoid main(String args[])throws Exception{
//声明文件,如果文件不存在则自动创建
File f1 =new File("C:"+ File.separator +"AAA\\AAA.txt");
//创建文件输出流(程序向文件输出字节流)
OutputStream out =new FileOutputStream(f1);
String str ="hello baby";
byte bts[]= str.getBytes();
//向文件输出字节流,并关闭输出流
out.write(bts);
out.close();

//创建文件输入流(程序从文件输入字节流)
InputStream in =new FileInputStream(f1);
//通过f1.length()获取文件内容长度以提前申请字节流数组
byte inbts[]=newbyte[(int)f1.length()];
//将文件字节流输入到inbts变量中,并输入关闭字节流
in.read(inbts);
in.close();
System.out.println("file stream is: "+new String(inbts));
}
}

 

 

字符流——字节流转换

1、  文件保存的是字节流,而程序使用的是字符流,所以程序和文件之间的数据流需要有个转换器来转换一下,他们就是OutputStreamWriter和InputStreamReader。

如图

8、IO相关_java

         参考如下

import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.Reader;
import java.io.InputStreamReader;

publicclass hello{
publicstaticvoid main(String args[])throws Exception{

File f1 =new File("C:"+ File.separator +"AAA\\AAA.txt");

//字节流读取
InputStream in =new FileInputStream(f1);
byte inbts[]=newbyte[(int)f1.length()];
in.read(inbts);
System.out.println("Byte Stream : "+new String(inbts));
in.close();

//字节流转字符流后再读取
InputStream inr =new FileInputStream(f1);
Reader r =new InputStreamReader(inr);
char c[]=newchar[100];
r.read(c);
System.out.println("String Stream: "+new String(c));
r.close();
}
}

 

 

其它流

1、  内存流,数据输向内存

2、  管道流,线程间通信

3、  打印流,提供打印功能,Sytem.out就是输出打印流对象,System.in是输入打印流对象

4、  等等

 

 

5、UTF是不定长编码,支持所有文字字符,所以java程序中一般使用UTF编码方式

 

 

 

 

 

标签:AAA,字节,java,IO,File,new,相关,out
From: https://blog.51cto.com/u_15906220/5920663

相关文章

  • vue上传formdata格式数据(axioes)
    vue.js上传formData数据到后台(其他js类似) 调用方式还是通过post方式请求类型要设置一下config.headers["content-type"]="multipart/form-data"; 然后上传......
  • 批次iou计算np实现
    defiou(a,b):""":parama:4*M*1left,top,right,bottom:paramb:4*1*Nleft,top,right,bottom:return:"""aleft,atop,aright,abottom......
  • Transformer-Based Learned Optimization
    前言 本文为学习优化器提出一种新的神经网络体系结构,其灵感来自经典的BFGS算法。和BFGS一样,将预条件矩阵估计为一级更新的和,但使用基于transformer的神经网络来预测这些更......
  • docker安装es和kibana, 解决No Living connections error 笔记
    转自:https://blog.csdn.net/weixin_43824526/article/details/1236412461.安装好docker2.安装es(elasticsearch的简写)和kibana,最好是版本一致dockerpullelasticsearch:7.......
  • slam14(1) v4_1 卡尔曼滤波3 使用例子和代码 ardunio mpu6050
     代码https://github.com/TKJElectronics/KalmanFilter   原理剖析原理2卡尔曼融合滤波https://zhuanlan.zhihu.com/p/36374943 关键点1他的偏置和噪声......
  • Error: could not detect network (event="noNetwork", code=NETWORK_ERROR, version=
    今天在hardhat中部署合约时碰到了这个问题,算是一个粗心的问题吧,特此记录一下,如图:出现该问题的原因竟然是配置网络url时应该是``,而我用成了'',导致一直连不上......
  • About this book (.NET Core in Action)
    .NETCoreinAction旨在帮助您在.NETCore中构建库和应用程序。它将带您了解开发高质量软件以供发布的许多重要方面。通过实例“实际”介绍概念,以展示其实际应用。谁应该......
  • JS操作session
    一.设置值sessionStorage.setItem(key,value);二.得到值vardata=sessionStorage.getItem(key);三.删除值sessionStorage.removeItem(key);四.清除Session中所有的......
  • shellinabox 相关资料整理
    入门资料https://www.cnblogs.com/OldJack/p/7359998.html安装因为我用CentOS所以用yumyuminstallshellinabox设置ip和端口可以设置一下服务器ip,因为我是在阿里......
  • Spring Boot Configuration Annotation Processor not configured解决办法
    问题:SpringBootConfigurationAnnotationProcessornotconfigured解决办法:其实这个并不影响代码的编译,但是如果你想去掉它,可以在pom.xml中加入spring-boot-configura......