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.(代码片段

PHP常用代码片段

这些 C++ 代码片段有啥作用?

编写一个程序, 将 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

php代码片段: sendFile/videoStream/sendEmail/phpexcel/ffmpeg/zip