Java程序设计基础------输入输出和文件处理

这篇博客是这一系列Java程序设计与基础中的最后一篇,这一篇主要讲一下Java中的输入输出和文件处理。

什么是文件的输入输出流?

然后在介绍IO的体系结构:

 最重要就是这四个抽象类inputstream、outputstream、writer、reader,下面来一一介绍:

 具体的构造方法和实例方法查一下API就知道了,接下来直接实际应用:

典例一:从标准输入流中输入字符,保存在文件中,然后用标准输出流输出到电脑频幕上。

package inputstream;


import java.io.*;

/**
 * 从标准输入流中读取字符  然后存入文件中 利用inputStream
 */
public class InputStreamDemo1 {
    public static void main(String[] args) throws FileNotFoundException {

        char ch;
        int data;

        FileInputStream fin = new FileInputStream(FileDescriptor.in);
        FileOutputStream fout = new FileOutputStream("C:\\Users\\闫志国\\Desktop\\demo.txt");
        System.out.println("请输入一串字符,以#结尾");

        while (true){
            try {
                if (((ch = (char) fin.read())=='#')) break;
                else {
                    fout.write(ch);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        FileInputStream cin = new FileInputStream("C:\\Users\\闫志国\\Desktop\\demo.txt");
        FileOutputStream cout = new FileOutputStream(FileDescriptor.out);

        while (true){
            try {
                if (!(cin.available()>0)) break;
                data = cin.read();
                cout.write(data);

            } catch (IOException e) {
                e.printStackTrace();
            }

        }

    }

}

注意点:

1、熟悉字符流的输入输出就行,了解大致的流程。

典例二:实现图片的复制

package inputstream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class InputStreamDemo2 {
    public static void main(String[] args) {
        try {
            FileInputStream fin = new FileInputStream("C:\\Users\\闫志国\\Desktop\\1.png");
            FileOutputStream fout = new FileOutputStream("C:\\Users\\闫志国\\Desktop\\2.png");

            byte[] b = new byte[fin.available()];//易错点  不能使用Byte

            fin.read(b);

            fout.write(b);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上面的这两个Demo就大致介绍了IuputStream和outputStream的用法,我觉得掌握这两个小例子就可以了。接下来聊聊Reader和Writer这两个抽象类了:

 

典例三:读取文件,打印字符。

package inputstream;

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

public class ReaderDemo1 {
    public static void main(String[] args) throws IOException {
        try {
            FileReader fread = new FileReader("C:\\Users\\闫志国\\Desktop\\demo.txt");

            char [] c = new char[100];
            int num = fread.read(c);
            String s = new String(c,0,num);
            System.out.println(s);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

典例四:利用BufferReader和BufferWriter进行文件得复制。

package inputstream;

import java.io.*;

public class ReaderDemo2 {


    public static void main(String[] args) throws IOException {
        try {
            BufferedReader bufferedReader = new BufferedReader(new FileReader("C:\\Users\\闫志国\\Desktop\\demo.txt"));
            BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("C:\\Users\\闫志国\\Desktop\\demo1.txt"));
            String str;
            while ((str = bufferedReader.readLine())!=null){
                System.out.println(str);
                bufferedWriter.write(str);
            }
            bufferedReader.close();
            bufferedWriter.close();


        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }


    }
}

 关于输入输出还有很多知识需要了解,但但是我觉得只要会上面得四个小栗子,在举一反三得话,应该不是什么难事,知道这些就够用得了!

最后,还是那句话,有兴趣得小伙伴一起交流啊!

猜你喜欢

转载自blog.csdn.net/yanzhiguo98/article/details/89646192
今日推荐