java_day14练习题

976-沈同学

发表文章数:65

热门标签

首页 » Java » 正文

java_day14练习题

练习1

1.1.训练描述:【InputStreamReader OutputStreamWriter】
一、需求说明:以UTF-8编码的格式写出 “你好”到文件中, 并将数据正确的读取出来打印在控制台
1.2.操作步骤描述
1.创建OutputStreamWriter关联文件, 并在构造方法中指定编码表
2.调用writer方法写出字符串
3.创建InputStreamReader关联文件, 并在构造方法中指定码表进行读取
4. 调用read方法读取数据, 打印在控制台
package com.scy14;

import java.io.*;
import java.util.ArrayList;

public class Test {
    public static void main(String[] args) throws IOException{
        OutputStreamWriter osb = new OutputStreamWriter(new FileOutputStream("test.txt"),"UTF-8");
        osb.write("你好");
        osb.close();
        InputStreamReader isr = new InputStreamReader(new FileInputStream("test.txt"),"UTF-8");
        int len;
        char[] ch = new char[1024];
        while ((len=isr.read(ch)) !=-1){
            System.out.println(new String(ch,0,len));
        }
        isr.close();
    }

练习2

2.1.训练描述:【BufferedReader、BufferedWriter】
一、需求说明:字符缓冲区流的特殊功能复制Java文件
2.2.操作步骤描述
1.创建BufferedReader输入流对象关联源文件
2.创建BufferedWriter输出流对象关联目标文件
3.调用readLine方法不断的读取,只要不等于null 说明没有读取完毕
4.调用writer方法直接写出字符串,但是要加上newLine方法手动换行
5.关闭流释放资源
package com.scy14;

import java.io.*;
import java.util.ArrayList;

public class Test {
    public static void main(String[] args) throws IOException{
        BufferedReader bf = new BufferedReader(new FileReader("BufferedOutputStreamDemo.java"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("BufferedOutputStreamDemo1.java"));
        String line;
        while ((line=bf.readLine()) !=null){
            bw.write(line);
            bw.newLine();
            bw.flush();
        }
        bw.close();
        bf.close();
    }
}

练习3

3.1.训练描述【BufferedReader BufferedWriter】
一、需求说明:
a)将集合中Student对象的信息写入当前项目下的stuInfo.txt当中
b)再读取stuInfo.txt的内容到集合中,遍历集合打印数据
二、补充说明:
a)写出信息的格式: it001,张曼玉,35,北京
b)输出信息的格式: it001,张曼玉,35,北京
package com.scy14;

import java.io.*;
import java.util.ArrayList;

public class Test {
    public static void main(String[] args) throws IOException{
       BufferedWriter bw = new BufferedWriter(new FileWriter("stuInfo.txt"));
       ArrayList<Student> array = new ArrayList<Student>();
       Student s1 = new Student("it001","张曼玉",35,"北京");
       array.add(s1);
       for (Student std :array){
           StringBuilder sb = new StringBuilder();
           sb.append(std.getSid()).append(",").append(std.getName()).append(",").append(std.getAge()).append(",").append(std.getCity());
           System.out.println(sb.toString());
           bw.write(sb.toString());
       }
       bw.close();
       BufferedReader br = new BufferedReader(new FileReader("stuInfo.txt"));
       ArrayList<Student> array_str = new ArrayList<Student>();
        String line;
        while ((line = br.readLine()) != null) {
            String[] strArray = line.split(",");
            Student std = new Student();
            std.setSid(strArray[0]);
            std.setName(strArray[1]);
            std.setAge(Integer.parseInt(strArray[2]));
            std.setCity(strArray[3]);
            array_str.add(std);
        }
        br.close();
        for (Student s : array_str) {
            System.out.println(s.getSid() + "," + s.getName() + "," + s.getAge() + "," + s.getCity());
        }
    }
}

练习4

1.1.训练描述:
一、分析以下需求,并用代码实现: 
实现一个验证码小程序,要求如下:
	1. 在项目根目录下新建一个文件:data.txt,键盘录入3个字符串验证码,并存入data.txt中,要求一个验证码占一行;
		2. 键盘录入一个需要被校验的验证码,如果输入的验证码在data.txt中存在:在控制台提示验证成功,如果不存在控制台提示验证失败
1.2.操作步骤描述
1.键盘录入三个验证码用字符串接收
2.创建输出流对象关联data.txt
3.将三个验证码写入data.txt当中, 关闭输出流
4.键盘录入一个需要校验的验证码并用字符串接收
5.创建输入流对象关联data.txt
6.创建集合对象
7.读取data.txt 将读取到的数据存储到集合中
8.使用集合调用contains方法, 将需要校验的字符串传入
9.根据返回的结果, 打印是否存在
package com.scy14;

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

public class Test {
    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入验证码:");
        String line1 = sc.nextLine();
        System.out.println("请输入验证码:");
        String line2 = sc.nextLine();
        System.out.println("请输入验证码:");
        String line3 = sc.nextLine();
        BufferedWriter bw = new BufferedWriter(new FileWriter("data.txt"));
        bw.write(line1);
        bw.newLine();
        bw.write(line2);
        bw.newLine();
        bw.write(line3);
        bw.newLine();
        bw.close();
        System.out.println("请输入需要校验的验证码");
        String num = sc.nextLine();
        BufferedReader br = new BufferedReader(new FileReader("data.txt"));
        ArrayList<String> array = new ArrayList<String>();
        String line;
        while ((line=br.readLine()) !=null){
            array.add(line);
        }
        if (array.contains(num)){
            System.out.println("验证成功");
        }
        else {
            System.out.println("验证失败");
        }
    }
}

练习5

一、分析以下需求,并用代码实现: 
实现一个验证码小程序,要求如下:
	1. 在项目根目录下新建一个文件:data.txt,键盘录入3个字符串验证码,并存入data.txt中,要求一个验证码占一行;
		2. 键盘录入一个需要被校验的验证码,如果输入的验证码在data.txt中存在:在控制台提示验证成功,如果不存在控制台提示验证失败
1.2.操作步骤描述
1.键盘录入三个验证码用字符串接收
2.创建输出流对象关联data.txt
3.将三个验证码写入data.txt当中, 关闭输出流
4.键盘录入一个需要校验的验证码并用字符串接收
5.创建输入流对象关联data.txt
6.创建集合对象
7.读取data.txt 将读取到的数据存储到集合中
8.使用集合调用contains方法, 将需要校验的字符串传入
9.根据返回的结果, 打印是否存在
package com.scy14;

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

public class Test {
    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        System.out.println("控制台提示用户输入注册的用户名:");
        String name = sc.nextLine();
        System.out.println("控制台提示用户输入注册的密码:");
        String password = sc.nextLine();
        BufferedReader br = new BufferedReader(new FileReader("user.txt"));
        String line;

        while ((line=br.readLine()) !=null){
            String[] strarr = line.split(",");
            if (name.equals(strarr[0]) && password.equals(strarr[1])){
                System.out.println("用户名已存在");
                break;
            }
            else {
                BufferedWriter bw = new BufferedWriter(new FileWriter("user.txt",true));
                StringBuilder sb = new StringBuilder();
                sb.append(name).append(",").append(password);
                bw.write(sb.toString());
                bw.newLine();
                bw.flush();
                System.out.println("注册成功");
                bw.close();
                break;
            }
        }
        br.close();
    }
}

练习6

一、分析以下需求,并用代码实现
需求 : 项目根路径下有text.txt文件,内容如下
我爱黑马
123456

利用IO流的知识读取text.txt文件的内容反转后写入text.txt文件中
654321
马黑爱我
3.2.操作步骤描述
1.创建集合对象用于存储读取到的每一行数据
2.创建BufferedReader关联text.txt文件
3.将读取到的每一行数据存储到集合中
4.关闭输入流
5.遍历集合获取到每一个数据(每一行字符串)
6.通过StringBuilder将当前字符串翻转
7.将转换后的字符串, 设置回集合的当前位置(提示 集合中的set方法)
8.创建输出流对象关联text.txt
9.倒着遍历集合(为了达到行翻转的效果)
10.将数据写入文件, 手动换行
11.关闭输出流
package com.scy14;

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

public class Test {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("test.txt"));
        ArrayList<String> array = new ArrayList<String>();
        String line;
        while ((line=br.readLine()) !=null){
            array.add(line);
        }
        br.close();
        for (int i=0;i<array.size();i++){
            StringBuilder sb = new StringBuilder();
            String reverse =sb.append(array.get(i)).reverse().toString();
            array.set(i,reverse);
        }
        BufferedWriter bw = new BufferedWriter(new FileWriter("test.txt"));
        for (int i=array.size()-1;i>=0;i--){
            bw.write(array.get(i));
            bw.newLine();
        }
        bw.close();
    }
}
标签:

拜师教育学员文章:作者:976-沈同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《java_day14练习题》 发布于2020-03-18

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录