2020/4/11java学习日记
今日复习:
- 复制文本的五种方式
第一种:FWFR-一次读取一个字符
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//复制文本第一种方式:FWFR-一次读取一个字符
public class IOpractise01 {
public static void main(String[] args) throws IOException {
//创建输入流对象
FileReader fr=new FileReader("b.txt");
//创建输出流对象
FileWriter fw=new FileWriter("sb.txt");
int i;
while((i=fr.read())!=-1){
fw.write(i);
}
fw.close();
fr.close();
}
}
第二种:FWFR-一次读取一个字符数组
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//复制文本第二种方式:FWFR-一次读取一个字符数组
public class IOpractise01 {
public static void main(String[] args) throws IOException {
//创建输入流对象
FileReader fr=new FileReader("b.txt");
//创建输出流对象
FileWriter fw=new FileWriter("sb.txt");
char[]chs=new char[1024];
int i;
while((i=fr.read(chs))!=-1){
fw.write(chs,0,i);
}
fw.close();
fr.close();
}
}
第三种:BWBR-一次读取一个字符
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//复制文本第三种方式:BWBR-一次读取一个字符
public class IOpractise01 {
public static void main(String[] args) throws IOException {
//创建缓冲流输入流对象
BufferedReader br=new BufferedReader(new FileReader("b.txt"));
//创建缓冲流输出流对象
BufferedWriter bw=new BufferedWriter(new FileWriter("sb.txt"));
int i;
while((i=br.read())!=-1){
bw.write(i);
}
bw.close();
br.close();
}
}
第四种:BWBR-一次读取一个字符数组
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//复制文本第四种方式:BWBR-一次读取一个字符数组
public class IOpractise01 {
public static void main(String[] args) throws IOException {
//创建缓冲流输入流对象
BufferedReader br=new BufferedReader(new FileReader("b.txt"));
//创建缓冲流输出流对象
BufferedWriter bw=new BufferedWriter(new FileWriter("sb.txt"));
char[]chs=new char[1024];
int i;
while((i=br.read(chs))!=-1){
bw.write(chs,0,i);
}
bw.close();
br.close();
}
}
第五种:BWBR-一次读取一行
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//复制文本第五种方式:BWBR-一次读取一行
public class IOpractise01 {
public static void main(String[] args) throws IOException {
//创建缓冲流输入流对象
BufferedReader br=new BufferedReader(new FileReader("b.txt"));
//创建缓冲流输出流对象
BufferedWriter bw=new BufferedWriter(new FileWriter("sb.txt"));
String i;
while((i=br.readLine())!=null){
bw.write(i);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
}
- 把文本文件中的数据读取到集合
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class IOpractise02 {
public static void main(String[] args) throws IOException {
//创建缓冲流输入对象
BufferedReader br =new BufferedReader(new FileReader("s.txt"));
//创建集合
ArrayList<String> al=new ArrayList();
String a;
while((a=br.readLine())!=null){
al.add(a);
}
for(int i=0;i<al.size();i++){
System.out.println(al.get(i));
}
br.close();
}
}
- 改进昨日把集合中的学生信息写到文本文件中;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
import axing06.al;
public class studentdemo {
public static void main(String[] args) throws IOException {
//创建缓冲流输出对象
BufferedWriter bw=new BufferedWriter(new FileWriter("xx.txt"));
//创建学生类集合
ArrayList<student>al=new ArrayList<student>();
shuru(al);
shuru(al);
shuru(al);
for(int x=0;x<al.size();x++){
bw.write(al.get(x).getSid()+"\t");
bw.write(al.get(x).getName()+"\t");
bw.write(al.get(x).getAge()+"\t");
bw.write(al.get(x).getAddress()+"\t");
bw.newLine();
}
bw.close();
}
public static void shuru(ArrayList<student> al){
String sid;
Scanner sc=new Scanner(System.in);
while(true){
System.out.println("请输入学号");
sid=sc.nextLine();
boolean flag=false;
for(int i=0;i<al.size();i++){
student s=al.get(i);
if(s.getSid().equals(sid)){
flag=true;
break;
}
}
if(flag==true){
System.out.println("您输入的学号已被占用,请重新输入");
}else{
break;
}
}
System.out.println("请输入姓名");
String name=sc.nextLine();
System.out.println("请输入年龄");
String age=sc.nextLine();
System.out.println("请输入籍贯");
String address=sc.nextLine();
student s=new student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
al.add(s);
}
}
今日学习:
- 把文本中的数据读取到集合中并遍历
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class studentdemo02 {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new FileReader("xx.txt"));
ArrayList<student> al=new ArrayList();
String line;
while((line=br.readLine())!=null){
String[] spt=line.split(",");
student s=new student();
s.setSid(spt[0]);
s.setName(spt[1]);
s.setAge(spt[2]);
s.setAddress(spt[3]);
al.add(s);
}
System.out.println("学号\t姓名\t年龄\t居住地");
for(int x=0;x<al.size();x++){
System.out.println(al.get(x).getSid()+"\t"+al.get(x).getName()+"\t"+al.get(x).getAge()+"\t"+al.get(x).getAddress());
}
br.close();
}
}
- 学生信息管理系统IO版
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class suidentdemo2 {
public static void main(String[] args) throws IOException {
ArrayList<student>array=new ArrayList<student>();
readdate(array);
while(true){
System.out.println("欢迎进入学生管理系统");
System.out.println("输入1,进入查询学生信息功能");
System.out.println("输入2,进入添加学生信息功能");
System.out.println("输入3,进入删除学生信息功能");
System.out.println("输入4,进入修改学生信息功能");
System.out.println("输入5,退出系统");
System.out.println("请输入您的选择");
Scanner sc=new Scanner(System.in);
String a=sc.nextLine();
switch(a){
case "1":
zhanshiquanbuxuehao(array);
break;
case "2":
tianjia(array);
break;
case "3":
shanchu(array);
break;
case "4":
updatestudent(array);
break;
case "5":
System.out.println("感谢您的使用");
System.exit(0);
break;
default:
System.out.println("输入错误,请重新输入");
break;
}
}
}
public static void tianjia(ArrayList<student> array) throws IOException {
BufferedWriter bw=new BufferedWriter(new FileWriter("studentIO.txt"));
String sid;
Scanner sc=new Scanner(System.in);
while(true){
System.out.println("请输入学号");
sid=sc.nextLine();
int i=-1;
for(int x=0;x<array.size();x++){
student s=array.get(x);
if(s.getSid().equals(sid)){
i=x;
break;
}
}
if(i==-1){
break;
}else{
System.out.println("您输入的学号已被占用,请重新输入");
}
}
System.out.println("请输入姓名");
String name=sc.nextLine();
System.out.println("请输入年龄");
String age=sc.nextLine();
System.out.println("请输入籍贯");
String address=sc.nextLine();
student s=new student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
array.add(s);
System.out.println("添加成功");
writedate(array);
bw.close();
}
public static void updatestudent(ArrayList<student> array) throws IOException{
BufferedWriter bw=new BufferedWriter(new FileWriter("studentIO.txt"));
Scanner sc=new Scanner(System.in);
System.out.println("请输入需要修改的学号");
String sid=sc.nextLine();
int i=-1;
for(int x=0;x<array.size();x++){
student s=array.get(x);
if(s.getSid().equals(sid)){
i=x;
break;
}
}
if(i==-1){
System.out.println("未能查找到您输入的学号,请重新输入");
}else{
System.out.println("请输入新的姓名");
String name=sc.nextLine();
System.out.println("请输入新的年龄");
String age=sc.nextLine();
System.out.println("请输入新的籍贯");
String address=sc.nextLine();
student s=new student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
array.set(i, s);
}
writedate(array);
bw.close();
}
public static void shanchu(ArrayList<student> array) throws IOException{
BufferedWriter bw=new BufferedWriter(new FileWriter("studentIO.txt"));
Scanner sc=new Scanner(System.in);
System.out.println("请输入您要删除的学号");
String xh=sc.nextLine();
int index=-1;
for(int x=0;x<array.size();x++){
student s=array.get(x);
if(s.getSid().equals(xh)){
index=x;
break;
}
}
if(index!=-1){
array.remove(index);
System.out.println("删除成功");
}else{
System.out.println("没有查找到您要删除的学号,请重新输入");
}
writedate(array);
bw.close();
}
public static void zhanshiquanbuxuehao(ArrayList<student> array) throws IOException{
if(array.size()==0){
System.out.println("当前没有学生信息,请重新输入");
return;
}
for(int x=0;x<array.size();x++){
System.out.println("学号\t姓名\t年龄\t籍贯");
String a=array.get(x).getSid();
String b=array.get(x).getName();
String c=array.get(x).getAge();
String d=array.get(x).getAddress();
System.out.println(a+"\t"+b+"\t"+c+"\t"+d);
}
}
public static void readdate(ArrayList<student> array) throws IOException{
BufferedReader br=new BufferedReader(new FileReader("studentIO.txt"));
String a;
while((a=br.readLine())!=null){
student s=new student();
String []spt=a.split("\t");
s.setSid(spt[0]);
s.setName(spt[1]);
s.setAge(spt[2]);
s.setAddress(spt[3]);
array.add(s);
}
br.close();
}
public static void writedate(ArrayList<student> array) throws IOException{
BufferedWriter bw=new BufferedWriter(new FileWriter("studentIO.txt"));
for(int x=0;x<array.size();x++){
bw.write(array.get(x).getSid()+"\t");
bw.write(array.get(x).getName()+"\t");
bw.write(array.get(x).getAge()+"\t");
bw.write(array.get(x).getAddress()+"\t");
bw.newLine();
}
bw.close();
}
}
今日遗憾:
fileName还是没搞懂;
今日心得:
写代码不能想着就为这一次任务使用,要把代码方法化。
嘿嘿嘿,不看老师教就能把学生信息管理系统IO版写出来,真的是成就感炸裂!过程中遇到好多次问题,但是都一个一个找到原因并且解决了,好喜欢这种感觉哈哈哈,虽然花的时间比较多,从七点一直到九点半,但是who care,一步一个脚印!我一定可以学好Java!
缺点:
拿到一个代码任务,会愣住,不知道该怎么写,我觉得原因主要在于我写代码时思路不清晰,基础不牢,我现在虽然能把老师让完成的任务完成,但是还是感觉自己是死记硬背的成分偏多,要牢牢掌握每种代码的功能和使用范围,下次写的时候可以在纸上先写思路。