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("姓名\t" + "学号\t" + "课1成绩\t" + "课2成绩\t" + "课3成绩\t" + "平均成绩\n");
		for(int i = 0; i < 5; i++) {
			System.out.println("第" + (i + 1) + "位学生信息录入-----------------------");
			System.out.println("请输入学生姓名:");
			stu.setName(input.next());
			content.append(stu.getName()).append("\t");
			System.out.println("输入学号:");
			stu.setStuId(input.nextLong());
			content.append(stu.getStuId()).append("\t");
			System.out.println("输入课1的成绩:");
			stu.setScore1(input.nextDouble());
			content.append(stu.getScore1()).append("\t");
			System.out.println("输入课2的成绩:");
			stu.setScore2(input.nextDouble());
			content.append(stu.getScore2()).append("\t");
			System.out.println("输入课3的成绩:");
			stu.setScore3(input.nextDouble());
			content.append(stu.getScore3()).append("\t");
			double ave = (stu.getScore1() + stu.getScore2() + stu.getScore3()) / 3;
			content.append(ave).append("\n");
		}
		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();//关闭输入
	}
}

posted @ 2020-02-20 21:24  笔架山Code  阅读(154)  评论(0编辑  收藏  举报