Java复习打卡day17

绝对路径和相对路径

import java.io.File;

public class Demo {
    public static void main(String[] args) {
        //绝对路径:通常指明盘符
        //相对路径:通常不指明盘符
        File file = new File("c:\\a.txt");
        File file1 = new File("a.text");
        System.out.println(file.getAbsolutePath());
        System.out.println(file1.getAbsolutePath());
    }
}

输入输出流

输入输出流:即io流,它分为输入流和输出流;
分类:
	按数据的流向分:
		输入流和输出流。
	按传输的类型分:
		字节流和字符流。
	还有打印流,对象流等等。
基本上讲以下的几种常见类:
InputStream,OutputStream(字节流),Reader,Writer(字符流)

OutputStream

import java.io.FileOutputStream;
import java.io.IOException;

public class Demo1 {
    public static void main(String[] args) throws IOException {
    //OutputStream是一个抽象类,一般都是用它的子类FileOutputStream
        FileOutputStream file = new FileOutputStream("D:\\a.txt");
        byte[] name1 = new byte[10];
        name1[0] = 'A';
        for (int i = 1; i < name1.length; i++) {
            name1[i] = ++name1[i-1];
            if(i == name1.length-1) {
                System.out.println("这里执行了");
                ++name1[i];
                System.out.println("这里执行了");
            }
        }
        file.write(name1);
        file.close();//当一个流写完的时候,一定要关掉
        System.out.println("写完了");
    }
}

InputStream

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

public class Demo2 {
    public static void main(String[] args) throws IOException {
        FileInputStream file = new FileInputStream("d:\\a.txt");
        while (true) {
            if(file.read() == -1)
                break;
            System.out.println((char) file.read());
        }//这样可以实现文件的输入
    }
}

字符输出

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

public class Demo3 {
    public static void main(String[] args) throws IOException {
        FileWriter file = new FileWriter("d://b.txt",true);
        file.append('c').append('b').append('a');
        file.close();
        System.out.println("成功");
    }
}

字符读取

import java.io.FileReader;
import java.io.IOException;

public class Demo4 {
    public static void main(String[] args) throws IOException {
        FileReader file = new FileReader("d:\\b.txt");
        char[] ch = new char[100];
        int read = file.read(ch);
        String text = new String(ch,0,read);
        System.out.println(text.length());
        System.out.println(text);
    }
}

文件加密和解密

import java.io.*;
import java.util.Scanner;

public class Demo5 {
    public static void main(String[] args) throws IOException {
        System.out.println("请输入要加密的文件的路径:");
        Scanner input = new Scanner(System.in);
        String path = input.nextLine();
        File oldfile = new File(path);
        File newfile = new File(oldfile.getParentFile(),"mi-"+oldfile.getName());

        FileInputStream fis = new FileInputStream(oldfile.getAbsoluteFile());
        FileOutputStream fos = new FileOutputStream(newfile.getAbsoluteFile());
        while(true){
            int b = fis.read();
            if(b == -1)
                break;
            fos.write(b^10);
            //一个数同时^一个数两次之后将会变回他本身
        }
        System.out.println("加密成功!");

    }
}

字符编码

计算机采用的数据存储方式位二进制存储。无论是图片,视频,文字还是任何其他
的显示,都逃不开二进制存储。
那么这就涉及到了翻译问题了,早在1961年国外就发明了ASCII码表,他可以编译各种
英文字符为计算机语言,然后现在又出现了Unicode等编码表,这里推荐大家使用
UTF-8。
计算机上有五个主要部分硬盘,内存,CPU,显卡还有显示器。
硬盘和内存都是用来存储数据的,区别是前者永久存储数据,而后者短期存储数据;
CPU和显卡都是计算的部分,区别是CPU主要负责程序上的计算,而显卡负责图像的
计算;
最后就是显示器了,它的作用就是显示图形和文字。推荐程序员使用带鱼屏或者
旋转屏。这相当于程序员的物理外挂。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java员工打卡签到代码的实现方式有很多种,以下是其中一种可能的实现方式: ```java import java.util.Date; public class Employee { private String name; private Date lastSignIn; public Employee(String name) { this.name = name; } public void signIn() { Date now = new Date(); System.out.println(name + "签到成功,时间:" + now); lastSignIn = now; } public void signOut() { Date now = new Date(); System.out.println(name + "签退成功,时间:" + now); } public void checkInStatus() { if (lastSignIn == null) { System.out.println(name + "尚未签到"); } else { System.out.println(name + "上次签到时间:" + lastSignIn); } } } ``` 上面的代码定义了一个`Employee`类,其中包含了员工的姓名和上次签到时间。类中有三个方法:`signIn()`、`signOut()`和`checkInStatus()`。`signIn()`方法表示员工签到,会打印出员工姓名和当前时间,并将当前时间记录为上次签到时间;`signOut()`方法表示员工签退,会打印出员工姓名和当前时间;`checkInStatus()`方法表示查询员工的签到状态,会打印出员工姓名和上次签到时间(如果已经签到过),否则会提示尚未签到。 如果要使用这段代码,可以在其他类中创建`Employee`对象,并调用其中的方法来完成打卡签到功能。例如: ```java public class Main { public static void main(String[] args) { Employee emp1 = new Employee("张三"); emp1.signIn(); emp1.checkInStatus(); emp1.signOut(); } } ``` 这段代码创建了一个名为`emp1`的`Employee`对象,姓名为“张三”。接着调用了`signIn()`方法进行签到,`checkInStatus()`方法查询签到状态,最后调用了`signOut()`方法进行签退。运行这段代码后,会打印出以下结果: ``` 张三签到成功,时间:Thu Jul 22 14:47:23 CST 2021 张三上次签到时间:Thu Jul 22 14:47:23 CST 2021 张三签退成功,时间:Thu Jul 22 14:47:28 CST 2021 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值