Java实验五

在这里插入图片描述

package Ex5.Firstquestion;

import java.io.*;
/**
 * @author 15328
 * 1、编写一个Java应用程序,将已存在的扩展名为.txt的文本文件加密后存入另一个文本文件中。
 * 按模板要求,将【代码1】~【代码7】替换为Java程序代码。
 */

public class SecretExample
{
    public static void main(String a[])
    {
        File fileone=new File("src\\Ex5\\Firstquestion\\hello.txt");
        File filetwo=new File("src\\Ex5\\Firstquestion\\hello.secret");
        //char b[]={'a','b','c','d'};
        char b[]=new char[100];
        try{
            FileReader in =  new FileReader(fileone);
            //创建指向fileone的字符输入流
            FileWriter out = new FileWriter(filetwo);
            //创建指向fileontwo的字符输出流
            int n = -1;
            while((n=in.read(b)) != -1) {
                for(int i = 0; i < n; i++) {
                    b[i] = (char) (b[i] ^ 'a');
                }
                out.write(b, 0, n);
                //out将数组b的前n单元写到文件
            }
            out.close();   //out关闭
            in = new FileReader(filetwo);
            //创建指向fileontwo的字符输入流
            System.out.println("加密后的文件内容:");
            while (n != -1) {
                String str = new String(b, 0, n);
                System.out.println("dfjakfjd" + str);
                n = in.read(b);
            }
            in = new FileReader(filetwo);
            System.out.println("解密后的文件内容:");
            while ( (n=in.read(b)) != -1 ) {
                for (int i = 0; i < n; i++) {
                    b[i] = (char) (b[i] ^ 'a');
                }
                String str = new String(b, 0, n);
                System.out.println(str);
            }
            in.close();   // in关闭
        }
        catch(IOException e)
        {
            System.out.println(e);
        }
    }
}

2

在这里插入图片描述

package Ex5.Secondquestion;

import java.io.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Objects;
import java.util.Scanner;
import java.nio.file.Files;

/**
 * @author 15328
 * 2、编程完成下列功能:
 * 1)首先建立两个文件myfiel.txt和myfile2.txt。
 * 2)从标准设备中输入多名学生信息,如学号,姓名,专业,班级,家庭住址等,
 * 待输入"bye"时结束,将输入内容保存在myfile1.txt文件中。
 * 3)再将myfile1.txt文件中内容拷贝到myfile2.txt。
 */
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        Student [] students = new Student[50];
        String [] pool = new String[250];
        String name;
        String idOfStu;
        String major;
        String classOfStu;
        String address;
        int i = 0;
        int j = 0;
        while(true){

            name = input.next();
            if(Objects.equals(name, "bye")){
                break;
            }
            else{
                pool[j++] = name;
            }

            idOfStu = input.next();
            if(Objects.equals(idOfStu, "bye")){
                break;
            }
            else{
                pool[j++] = idOfStu;
            }

            major = input.next();
            if(Objects.equals(major, "bye")){
                break;
            }
            else{
                pool[j++] = major;
            }

            classOfStu = input.next();
            if(Objects.equals(classOfStu, "bye")){
                break;
            }
            else{
                pool[j++] = classOfStu;
            }

            address = input.next();
            if(Objects.equals(address, "bye")){
                break;
            }
            else{
                pool[j++] = address;
            }

            students[i++] = new Student(name,idOfStu,major,classOfStu,address);
        }
        File fileone = new File("src/Ex5/Secondquestion/myfile.txt");
        File filetwo = new File("src/Ex5/Secondquestion/myfile2.txt");
        try {

            FileWriter out = new FileWriter(fileone);
            for(int x = 0; x < j; x++){
                out.write(pool[x],0,pool[x].length());
            }
            out.close();

            
            FileOutputStream out2 = new FileOutputStream(filetwo);
            Path path  = Paths.get(fileone.getPath());
            Files.copy(path,out2);
            out2.close();
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}
class Student{
    private String name;
    private String idOfStu;
    private String major;
    private String classOfStu;
    private String address;

    public Student(String name, String idOfStu, String major, String classOfStu, String address) {
        this.name = name;
        this.idOfStu = idOfStu;
        this.major = major;
        this.classOfStu = classOfStu;
        this.address = address;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值