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
评论 抢沙发