IO操作
Posted zhouge6
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IO操作相关的知识,希望对你有一定的参考价值。
1、有5个学生,每个学生有三门课的成绩,从键盘输入以上数据(学生号,姓名,三门课的成绩),计算出平均成绩,将上述数据存放在文件“stud”中
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
/**
* 学生信息录入并存放在文件中
* @author 努力Coding
* @version
* @data 2020年2月20日
*/
public class Main {
public static void main(String[] args) throws IOException {
Scanner input = new Scanner(System.in);
Student stu = new Student();//创建学生对象
StringBuffer content = new StringBuffer();//字符串拼接
FileWriter writer = new FileWriter("stud.txt",true);//创建文件
BufferedWriter bwriter = new BufferedWriter(writer);//使用缓存
//循环输入学生信息并拼接
content.append("姓名 " + "学号 " + "课1成绩 " + "课2成绩 " + "课3成绩 " + "平均成绩
");
for(int i = 0; i < 5; i++) {
System.out.println("第" + (i + 1) + "位学生信息录入-----------------------");
System.out.println("请输入学生姓名:");
stu.setName(input.next());
content.append(stu.getName()).append(" ");
System.out.println("输入学号:");
stu.setStuId(input.nextLong());
content.append(stu.getStuId()).append(" ");
System.out.println("输入课1的成绩:");
stu.setScore1(input.nextDouble());
content.append(stu.getScore1()).append(" ");
System.out.println("输入课2的成绩:");
stu.setScore2(input.nextDouble());
content.append(stu.getScore2()).append(" ");
System.out.println("输入课3的成绩:");
stu.setScore3(input.nextDouble());
content.append(stu.getScore3()).append(" ");
double ave = (stu.getScore1() + stu.getScore2() + stu.getScore3()) / 3;
content.append(ave).append("
");
}
System.out.println(content);//控制台打印
writer.write(content.toString());//写入文件stud.txt中
bwriter.flush();//强制输出缓存中的内容
bwriter.close();//关闭流
writer.close();
input.close();
}
}
/**
* 学生类
* @author 努力Coding
* @version
* @data 2020年2月20日
*/
public class Student {
private long stuId;//学号
private String name;//名字
private double score1;//课1成绩
private double score2;//课2成绩
private double score3;//课3成绩
public long getStuId() {
return stuId;
}
public void setStuId(long stuId) {
this.stuId = stuId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore1() {
return score1;
}
public void setScore1(double score1) {
this.score1 = score1;
}
public double getScore2() {
return score2;
}
public void setScore2(double score2) {
this.score2 = score2;
}
public double getScore3() {
return score3;
}
public void setScore3(double score3) {
this.score3 = score3;
}
}
2、实现文件拷贝功能
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Scanner;
/**
* 文件拷贝:源文件名和目标文件名由控制台参数传入
* @author 努力Coding
* @version
* @data 2020年2月20日
*/
public class CopyDemo {
public static void main(String[] args) throws IOException {
Scanner input = new Scanner(System.in);
System.out.println("请输入源文件的名称:");
File sourceFile = new File(input.next());//源文件
System.out.println("请输入目标文件的名称:");
File finalFile = new File(input.next());//目标文件
InputStream inStream = new FileInputStream(sourceFile);//输入流
OutputStream outStream = new FileOutputStream(finalFile);//输出流
int copyFile;//复制文件内容
while((copyFile = inStream.read()) != -1) {
outStream.write(copyFile);
}
System.out.println("源文件名为:" + sourceFile.getName());//打印文件名
System.out.println("目标文件名为:" + finalFile.getName());//打印文件名
}
}
3、从键盘输入字母,将其存储到文件中,对其升序排序后,再存储到另一个文件中,并打印出来
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
/**
* 从键盘键入一系列的字母,存储到文件中;
* 升序排序后,再存储到另一个文件中;
* 并显示出来
* @author 努力Coding
* @version
* @data 2020年2月20日
*/
public class SortDemo {
public static void main(String[] args) throws IOException{
Scanner input = new Scanner(System.in);
List<String> list = new ArrayList<String>();//集合
FileWriter writer = new FileWriter("beforeSort.txt",true);
BufferedWriter bWriter = new BufferedWriter(writer);
System.out.println("请问你要输入几个字母:");
int word = input.nextInt();
for(int i = 0; i < word; i++) {
System.out.println("请输入第" + (i + 1) + "个字母:");
list.add(input.next());//为集合添加元素
}
for(int i = 0; i < list.size(); i++) {
writer.write(list.get(i)); //获取集合中的元素
}
System.out.println("排序前:" + list);
Collections.sort(list);//利用集合工具类进行排序
FileWriter writer1 = new FileWriter("afterSort.txt",true);
BufferedWriter bWriter1 = new BufferedWriter(writer1);
for(int i = 0; i < list.size(); i++) {
writer1.write(list.get(i)); //获取排序后的集合元素
}
System.out.println("排序后:" +list);
bWriter.flush();//强制输出缓存中的内容
bWriter1.flush();//强制输出缓存中的内容
bWriter.close();//关闭流
bWriter1.close();//关闭流
input.close();//关闭输入
}
}
以上是关于IO操作的主要内容,如果未能解决你的问题,请参考以下文章
csharp C#代码片段 - 使类成为Singleton模式。 (C#4.0+)https://heiswayi.github.io/2016/simple-singleton-pattern-us
VSCode自定义代码片段15——git命令操作一个完整流程