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自定义代码片段——git命令操作一个完整流程

golang代码片段(摘抄)

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

是否有一种方法可以将实时记录的音频片段连续发送到Flutter.io中的后端服务器?