JavaSEDemo29IO流

本文详细介绍了Java IO流的基础概念,包括字节流(如InputStream和OutputStream)与字符流(如Reader和Writer),并探讨了流式和非流式处理的区别,重点讲解了OutputStream的write方法、DataOutput类的写操作、InputStream的read方法、DataInput类的读操作,以及RandomAccessFile的高级使用。适合进一步理解Java I/O操作的开发者。

简介

  • 本文是2021/04/27整理的笔记
  • 赘述可能有点多,还请各位朋友耐心阅读
  • 本人的内容和答案不一定是最好最正确的,欢迎各位朋友评论区指正改进

练习题

练习1

取出两个字符串中最大相同的子串

import java.util.ArrayList;
import java.util.Scanner;
public class Demo01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //输入第一个字符串
        System.out.println("请输入第一个字符串:");
        String s1 = sc.next();
        System.out.println("请输入第二个字符串:");
        String s2 = sc.next();
         /*String s1= "abcdjkld";
         String s2= "grjabcd";*/

        /*String s1 = "decfjk";
        String s2 = "lcecfk";*/

         /*String s1 = "abcredef";
        String s2 = "abcdef";*/
        for (String s : method(s1, s2)) {
            System.out.println("s = " + s);
        }
    }
    public static ArrayList<String> method(String s1, String s2){
        //判断两个字符串是不是有空串
        if(s1 == null || s2 == null){
            try {
                throw new Exception("字符串为空");
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
        ArrayList<String> list = new ArrayList<>();
        String max;
        String min ;
         //先比较两个字符串的长短
        if(s1.length() - s2.length() >= 0){
            min = s2;
            max = s1;
        }else {
            min = s1;
            max = s2;
        }
        //每次要判断的字符串的长度
                for (int i = min.length() -1; i >= 0; i--) {
                    //每次的次数
                    for (int j = 0; i + j < min.length() ; j++) {
                    String substring = min.substring(j, i + j + 1);
                    if(max.contains(substring)){
//                        return substring;
                        list.add(substring);
                    }
                }
                    if(list.isEmpty() == false){
                        return list;
                    }
            }
            return null;
    }
}

练习2

以下代码的执行结果是?【单项选择题】【简单】
public class Example {
public static void main(String[] args) {
File f = new File(“c:\large.txt”);
}
A.large.txt文件在本地硬盘上被创建
B.在Unix系统上运行失败,因为路径分割符不正确
C.large.txt文件在本地硬盘上没有被创建
D.如果large.txt文件已经存在,则一个异常被抛出
答案:
C

练习3

以下关于File类的描述哪些是正确的?【多项选择题】【简单】
A.File类可以用于访问当前工作路径中的文件
B.当一个File类实例被构建时,对应的目录或文件在本地文件系统中被创建
C.File类可以用于访问本地文件系统中的目录或文件
D.当一个File类实例被垃圾回收器回收后,对应的目录或文件也被删除
答案:
AC

创建文件夹

(1) File file = new File(文件夹路径)
(2) 判断文件夹是否存在,级联创建文件夹(含单级)

if(!dir.exists()){
//级联创建多级目录(含单级)
dir.mkdirs()
}

输入流和输出流

字节流和字符流

流式部分 非流式部分 其他

IO流继承树

流式部分 字节流(InputStream OutputStream)字符流(Reader Writer)
非流式部分(File RandomAccessFile) 其他

OutputStream

write(byte[ ],off,len)

DataOutput

writeXXX();

InputStream

read(byte[])

DataInput

readXXX();

PushBackInputStream unread

RandomAccessFile

seek(pos)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香鱼嫩虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值