i/o-java中级

2022/6/16 1:21:30

本文主要是介绍i/o-java中级,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一,文件对象

几种创建文件对象的方式:绝对路径,相对路径,父目录

二,流

1.流的建立(文件流)
文件输入流:FileInputStream=new FileInputStream(f);
文件输出流:FileOutputStream=new FileOutputStream(f);
1.①字节流的读写
拿代码来说明:
创建一个长度为文件长度的字节数组byte[] b=new byte[(int)f.length()];
用字节流的形式将文件内容读入字节数组fis.read(b);
用字节流的形式将内容写入文件 fos.write(b);
*1.②字符流的读写

/*这段代码是创建一个字符输入流,将文件f里的内容读入到all字符数组中*/ 
try(FileReader fr=new FileReader(f)) 
{
char[] all=new char[(int)f.length()];
fr.read(all); }
catch (IOException e) {
e.printStackTrace(); }
/*这段代码是将字符写入文件 */
try(FileWriter fw=new FileWriter(f)){
char[] cs=str.toCharArray //假设str是一个已赋值的字符串 
fw.writer(cs); }
catch (IOException e)
{ e.printStackTrace(); }

1.③缓存流的读写(必须建立在一个存在的流的基础上)

try( FileReader fr=new FileReader(f);//字符输入流
BufferedReader br=new BufferedReader(fr);//在字符流的基础上创建一个缓存输入流
FileWriter fw=new FileWriter(f);//字符输出流
PrintWriter pw=new PrintWriter(fw);//在字符 ){
while(true){
String line=br.readLine();
if(line==null){break;} } }

2.关闭流的方式
所有的流,无论是输入流还是输出流,使用完毕之后,都应该关闭。 如果不关闭,会产生对资源占用的浪费。 当量比较大的时候,会影响到业务的正常开展。
①在try中关闭:如果文件不存在,或者读取的时候出现问题而抛出异常,那么就不会执行这一行关闭流的代码,存在巨大的资源占用隐患。 不推荐使用,所以不做赘述
②在finally中关闭(标准的关闭方式):
在tyr块外创建流,如果在tyr中声明流,其作用域无法到达finally块中:FileInputStream=null; 在finally中关闭: java finally{ //判断是否为空 if(fis!=null){ //再进行一次trycatch处理 try{fis.close();} catch(IOException e){e.printStackTrace;}}}
③在try中声明流,try,catch或者finally结束的时候,会自动关闭,这种编写代码的方式叫做 try-with-resources, 这是从JDK7开始支持的技术:

try(FileInputStrean fis=new FileInputStream(f); 
FileOutputStream fos=new FileOutputStream(f);)
{ /*此处代码就不举例了*/ } catch(IOException e){ e.printStackTrace(); }

未完待续



这篇关于i/o-java中级的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程