最近有些慵懒,不能懈怠了,开始进行复习,好好地写技术博客了,今天的内容是Java中的File I/O:输入输出流

File I/O(Input/Output):文件的输入和输出流。

一般来说,我们用File I/O的主要用法就是:

1、可以得到一个永久的副本。

2、一个程序的输出可以输入到另一个程序。

3、可以自动输入,不必手动输入,最主要还是一个方便,比方说写一个网页的时候,可以写个按钮,做个功能,比方说我最近涉及到的毕业设计,就是可以写一个File I/O来弄一个Json和Xml文件之间的自动转换,极为方便。

笔者之前犯蠢了,自己在写的时候不小心把两个功能给弄混了,结果导致我的Json文件内容的丢失。

还好,进行回滚,将原本的内容给找回来了,开发常用小知识get。 

回滚Rollback:程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。

首先是我们的输入流:Input Stream

打开文件文本进行输入,链接到流之后进行读取。

我们这里用到的是FileReader类,这个类可以按字符读取流中的数据,当然FileInputStream也能使用。

准备一个文件,定义为text.txt,假设我这个文件中的内容是1,2,3。(进行测试用)

然后读取该文本文件的内容,即得到:FileReader readtext = new FileReader("text.txt");

之后的话就是链接到流进行读取,得到:BufferedReader inread = new BufferedReader(readtext);

但是这样的话,是没有办法读取到控制台的,我们需要将其转化为字符串形式,才能将其读出到控制台。

这里我用到一个readLine()方法,看表面意思也可以知道是逐行读取,只要每一行都不为空,那就打印到控制台。

按照这个逻辑的话,可以定义一个空的字符串,比方说String test1 = null;

然后利用一个while循环来进行遍历,之后打印出来,得到:while((test1 = inread.readLine) != null)

System.out.println(test1);

package fileio;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileIO {
    public static void main(String[] args) throws FileNotFoundException, IOException {
        FileReader readtext=new FileReader("text.txt");
        BufferedReader inread = new BufferedReader(readtext);
        String test1 = null;
        while((test1=inread.readLine())!=null)
            System.out.println(test1);
        
    }
    
}

结果:

其次是我们的输出流:Output Stream

与输入流Input Stream对应,输出流Output Stream指的便是将内容输出到文件文本当中。

与FileReader对应,我们这里要使用的便是FileWriter与BufferedWriter,当然,类似FileOutputStream和PrintWriter也能使用。

相似的,假设我们要将内容都输出到已经建立好的文件textsecond.txt中。

首先是定位到这个文件,可以得到FileWriter writertext = new FileWriter("textsecond.txt");

其次便是BufferedWriter outwriter = new BufferedWriter(writertext);

这里比方说我们要输入到testsecond.txt文件中的内容是10个number,那么我们可以写一个循环遍历1到10,然后通过输出流将10个number打印到文件当中去。

for(int number = 1;number <= 10;number++){

outwriter.write("number");

outwriter.newLine();

}

System.out.println("had been printed...");

package fileio;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class FileIO {
    public static void main(String[] args) {   
        try{
            FileWriter writertext = new FileWriter("textsecond.txt");
            BufferedWriter outwriter = new BufferedWriter(writertext);
            for(int number = 1;number <= 10;number++){
                outwriter.write("number");
                outwriter.newLine();
            }
            System.out.println("had been printed...");
            outwriter.close();
        }catch(IOException e){
            
        }
    }
    
}

结果:

总结:

总的来说,File I/O 输入输出并没有那么难,难度适中,不过FileWriter和PrintWriter等之间还是有点区别的,比方说println这个读出的方法只有在PrintWriter的时候才能使用,其他当然还有区别,具体什么区别的话,等我下次再进行整理了,今天就先讲这么多了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值