JAVA作业: ==> IO练习题

这篇博客介绍了使用Java IO技术创建目录并复制文件,开发控制台资源管理器,记录日志,实现用户登录验证以及序列化和反序列化学生数据的操作。用户可以输入路径来查看文件和目录,输入信息保存到日志,登录系统读取配置文件验证,同时详细阐述了如何处理学生对象的序列化与反序列化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

目录

使用IO技术,创建一个目录,然后复制一个文件到该目录!

使用IO技术,开发出一个控制台的资源管理器!要求:从命令行输入一个路径!如果存在,将该目录下所有的文件和文件夹列举出来,如果不存在则输出不存在该路径。

从控制台输入一些字符串,并将该类信息保存到日志文件”log.txt”中去。

从控制台进行输入用户名以及用户密码,判断是否登录成功!要求准确的用户名和密码存在配置文件中!

创建一个学生类,包含属性:学号、姓名、性别,包含show()方法用于显示学生的详细信息。创建测试类,在控制台上显示添加学生信息,要求程序循环运行,并依次提示接收学生类的所有属性值,保存到学生对象中,再将学生对象保存到集合对象中,并提示“是否继续添加(y/n):”,如果选择“y”则继续添加,否则退出循环,并将保存学生数据的集合对象通过序列化保存到“student.dat”文件中。实现从“student.dat”文件中反序列化保存学生数据的集合对象,并遍历打印输出学生信息。



使用IO技术,创建一个目录,然后复制一个文件到该目录!

public class Test {
    public static void main(String[] args) {
        File file = new File("a.txt");
        work(file);
        work2(file);
    }

    /**
     * 创建文件,读文件 (字节型)
     */
    public static void work(File file){
        try(InputStream inputStream = new FileInputStream(file);
            OutputStream outputStream = new FileOutputStream("b.txt")) { // 设置文件路径
            int length; // 设置接收长度
            byte[] by = new byte[1024]; // 设置每次接收字节数
            while((length = inputStream.read(by)) != -1){ // 判断是否还有字节
                outputStream.write(by,0,length);    // 根据字节长度进行拷贝
                System.out.println(length);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 字符型
     * @param file
     */
    public static void work2(File file){
        try(
                Reader inputFile = new FileReader(file);
                Writer outFile = new FileWriter("c.txt");   // 设置路径
                ) {
            int length; // 设置拷贝长度
            while((length = inputFile.read()) != -1){   // 判断是否进行循环
                outFile.write(length);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用IO技术,开发出一个控制台的资源管理器!要求:从命令行输入一个路径!如果存在,将该目录下所有的文件和文件夹列举出来,如果不存在则输出不存在该路径。

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入文件路径 : ");
        file(sc.nextLine());
    }

    /**
     * 判断是不是路径
     * @param str
     */
    public static void file(String str){
        File file = new File(str);
        if (file.exists()){
            work(str);
        }else{
            System.out.println("路径错误!!!");
        }
    }

    /**
     *  递归循环
     * @param str
     */
    public static void work(String str){
        File file = new File(str);  // 目录
        if (file.isFile()){     // 判断是不是文件
            System.out.println(file.getName()); // 文件输出名字
            return;
        }else if (file.exists()){   // 判断是不是目录
            File[] files = file.listFiles();    // 把当前目录下的文件和文件夹都存到数组里
            for(File f : files){    // 遍历数组
                System.out.println(f);  // 输出
                work(f.getName());  // 递归
            }
        }
    }
}

从控制台输入一些字符串,并将该类信息保存到日志文件”log.txt”中去。

public class Test {
    public static void main(String[] args) {
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值