java IO流

从控制台读取多字符输入

package com.shisan.IO;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class TestRead {
    public static void main(String[] args) throws IOException {
        char c;

        //使用 System.in 创建 BufferedReader
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("输入字符,按下 'q' 键退出");
        //读取字符
        do{
            c = (char) br.read();
        }while (c!='q');
    }
}

从控制台读取字符串

package com.shisan.IO;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class TestReadLine {
    public static void main(String[] args) throws IOException {
        String str;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("按下Enter输入文本");
        System.out.println("输入 'end' 退出");
        do{
            str = br.readLine();
            System.out.println(str);
        }while (!str.equals("end"));
    }
}

写入并读取文件

  1. FileInputStream 用于从文件读取数据,它的对象可以用关键字 new 来创建。
  2. 可以使用字符串类型的文件名来创建一个输入流对象来读取文件
InputStream f = new FileInputStream("C:/java/hello");
  1. 也可以使用一个文件对象来创建一个输入流对象来读取文件。我们首先得使用 File() 方法来创建一个文件对象
File f = new File("C:/java/hello");
InputStream in = new FileInputStream(f);
  1. FileOutputStream 该类用来创建一个文件并向文件中写数据。如果该流在打开文件进行输出前,目标文件不存在,那么该流会创建该文件。
  2. 有两个构造方法可以用来创建 FileOutputStream 对象。
  3. 使用字符串类型的文件名来创建一个输出流对象:
OutputStream f = new FileOutputStream("C:/java/hello")
  1. 也可以使用一个文件对象来创建一个输出流来写文件。我们首先得使用File()方法来创建一个文件对象:
File f = new File("C:/java/hello");
OutputStream fOut = new FileOutputStream(f);

实例

package com.shisan.IO;

import java.io.*;

public class TestFileIO {
    public static void main(String[] args) throws IOException {
        byte bWrite[] = {10,82,64,31,25};
        try {
            OutputStream f = new FileOutputStream("D:/IDEA/test.txt");

            for (int x = 0; x < bWrite.length; x++) {
                f.write(bWrite[x]);
            }
            f.close();

            InputStream f1 = new FileInputStream("text.txt");
            int size = f1.available();
            for (int i = 0; i < size; i++) {
                System.out.println((char) f1.read()+" ");

            }
            f1.close();

        } catch (FileNotFoundException e) {
            System.out.println("Exception");
        }

    }
}

读取目录

package com.shisan.IO;

import java.io.File;

public class TestList {
    public static void main(String[] args) {
        //输入你想查找的目录路径
        String MyFile = "D:/IDEA";
        //如果创建一个 File 对象并且它是一个目录,那么调用 isDirectory() 方法会返回 true。
        File f1 = new File(MyFile);
        if (f1.isDirectory()){
            System.out.println("目录"+ MyFile);
            //.list() 方法来提取它包含的文件和文件夹的列表。下面展示的例子说明如何使用 list() 方法来检查一个文件夹中包含的内容:
            String b[] = f1.list();
            for (int i = 0; i < b.length; i++) {
                File f = new File(MyFile + "/" + b[i]);
                if (f.isDirectory()){
                    System.out.println(b[i] + "这是一个目录");
                }else {
                    System.out.println(b[i] + "这是一个文件");
                }
            }
        }else {
            System.out.println(MyFile + "这不是一个目录");
        }
    }
}

删除目录或者文件

import java.io.File;

public class TestDel {
    public static void main(String[] args) {
        //修改为自己测试要删除的目录
        File folder = new File("D/test");

    }

    //删除文件及目录
    private static void deleteFolder(File folder) {
        //listFiles是获取该目录下所有文件和目录的绝对路径
        File[] files = folder.listFiles();
        if (files != null){
            //增强for循环 数值类型 + 临时变量(用来储存循环出来的东西) : 要循环的对象
            for (File f : files){
                //删除文件夹里的文件夹
                if (f.isDirectory()){
                    deleteFolder(f);
                }else {
                    //删除文件
                    f.delete();
                }
            }
        }
        //删除文件夹
        folder.delete();
    }
}

注意:当删除某一目录时,必须保证该目录下没有其他文件才能正确删除,否则将删除失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值