File IO
Posted bokedizhi97
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了File IO相关的知识,希望对你有一定的参考价值。
文件的输入输出处理
什么是文件?
文件可认为是相关记录或放在一起的数据的集合
File类常用方法
说 明 | |
---|---|
boolean exists( ) | 判断文件或目录是否存在 |
boolean isFile( ) | 判断是否是文件 |
boolean isDirectory( ) | 判断是否是目录 |
String getPath( ) | 返回此对象表示的文件的相对路径名 |
String getAbsolutePath( ) | 返回此对象表示的文件的绝对路径名 |
String getName( ) | 返回此对象表示的文件或目录的名称 |
boolean delete( ) | 删除此对象指定的文件或目录 |
boolean createNewFile( ) | 创建名称的空文件,不创建文件夹 |
long length() | 返回文件的长度,单位为字节, 如果文件不存在,则返回 0L |
如何读写文件?
通过流来读写文件:
流是指一连串流动的字符,是以先进先出方式发 送信息的通道
1.引入相关的类
2.创建输入流/l输出流对象
3.读取/写入文本文件的数据
4.关闭相关的流对象
Java流的分类:
输入流InputStream和Reader作为基类
输出流OutputStream和writer作为基类
输入输出流是相对于计算机内存来说的
单位分:
字节流是 8 位通用字节流,字符流是 16 位 Unicode 字符流
缓冲流 BufferedInputStreamOutputStream;Buffered;BufferedReader;BufferedWriter;
处理流 FileInputStream; FileOutputStream; FileReader; FileWriter
用FileInputStream和FileOutputStream读写文本文件
//写文件 System.out.print("请输入文件名:"); String name=sca.next(); File file=new File(name+".txt");//文件名 相对路径(项目名根目录下) // FileOutputStream fs=new FileOutputStream(file); //如果文件存在 覆盖 FileOutputStream fos=new FileOutputStream(file,true);//true表示追加,如果文件存在 向里面继续添加内容 System.out.println("请输入写入的内容:"); String str=sca.next(); byte bytes[]=str.getBytes(); //FileOutputStream 是基于字节流 把要写入的信息 保存到字节数组中 fos.write(bytes,0,bytes.length);//将字节数组中全部内容写到文件中 从0—数组的长度 fos.close();//关闭流 System.out.println("文件写入成功!"); //读文件 FileInputStream fis=new FileInputStream(file); byte bt[]=new byte[1024];//1KB 每次最多读取的1KB 根据文件大小而定 int temp=0; while((temp=fis.read(bt))!=-1){ //将数据保存到数组(缓冲区)中 并返回读取的字节数 -1表示读完了 System.out.println(new String(bt,0,temp));//输出数组中保存内容 按照每次读取的字节数 } fis.close(); } ———————————————— 版权声明:本文为CSDN博主「Always_As」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/Chianz632/java/article/details/79946851
用BufferedReader和BufferedWriter读写文本文件
1 public static void main(String[] args) { 2 String[] content={"我是中国人","我爱我的祖国"};//创建字符串 3 File file=new File("D:\test\c.txt");//创建文件目录对象 4 try { 5 FileWriter fw=new FileWriter(file);//创建字符输出流类对象 6 BufferedWriter bw=new BufferedWriter(fw);//创建上一层输出流对象 7 for(String str:content){bw.write(str);bw.newLine();}//遍历content循环,得到字符串。写入字符串并换行 8 bw.close();//关闭上一层输出流 9 fw.close();//关闭输出流 10 FileReader fr=new FileReader(file);//创建输入流对象 11 BufferedReader br=new BufferedReader(fr);//创建上一层输入流对象 12 String string=null;//声明一个字符串为空 13 while((string=br.readLine())!=null){System.out.println(string);}//读出字符串不为空的循环,打印字符串 14 br.close();//关闭上层输入流 15 fr.close();//关闭下层输入流 16 } catch (IOException e) { 17 // TODO Auto-generated catch block 18 e.printStackTrace(); 19 } 20 21 } 22 23 输出: 24 25 我是中国人 26 我爱我的祖国 27 ———————————————— 28 版权声明:本文为CSDN博主「马利诺兰」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 29 原文链接:https://blog.csdn.net/jyh210323/java/article/details/69219994
二进制文件的读写
使用DataInputStream和DataOutputStream读写二进制文件
读:
实现步骤:
引入相关的类;
构造数据输入流对象
read ()方法读取二进制数据
关闭数据输入流;
写:
实现步骤:
引入相关的类;
构造数据输出流对象;
方法写二进制文件;
关闭数据输出;
以上是关于File IO的主要内容,如果未能解决你的问题,请参考以下文章
java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段
编写一个程序, 将 a.txt 文件中的单词与 b.txt 文件中的 单词交替合并到 c.txt 文件中, a.txt 文件中的单词用回车符 分隔, b.txt 文件中用回车或空格进行分隔。(代码片段
csharp C#代码片段 - 使类成为Singleton模式。 (C#4.0+)https://heiswayi.github.io/2016/simple-singleton-pattern-us