Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >类的继承,文件读写

类的继承,文件读写

作者头像
达达前端
发布于 2019-07-03 04:37:28
发布于 2019-07-03 04:37:28
43900
代码可运行
举报
文章被收录于专栏:达达前端达达前端
运行总次数:0
代码可运行

标题图

父类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package hh;
public class People {
 protected String name;
 protected int age=16;
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public void getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 //父类的print方法
 public void print(){
  System.out.println(this.name);
  System.out.println(this.age);
 }
}

子类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package hh;
//继承使用extends关键字,前边是子类,后边是父类,类的继承只能有一个父类
public class Student extends People {
 private String no;
 //子类的成员变量和父类的成员变量同名时父类的成员变量被覆盖
 protected int age = 20;
 public String getNo() {
  return no;
 }
 public void setNo(String no){
  this.no = no;
 }
 //重载:在同一个类里多个方法名字相同,参数不一样
 //重写:在子类和父类之间多个方法名相同,参数相同,并且返回值也相同
 //调用父类同名的方法,前加上super
 public void print(){
  super.print();
  System.out.println(this.no);
 }
}

测试类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package hh;
public class Test {
 public static void main(String[] args) {
  People dashu = new People();
  dashu.setName("dashu");
  dashu.setAge(16);
  //调用父类的print方法
  dashu.print();

  Student stu = new Student();
  stu.setName("hhhhh");
  stu.setAge(16);
  stu.setNo("1024");
  //子类对象的调用
  stu.print();
 }
}

设计思想:用随机文件流把文件正向读出并保存到了字符串中,将字符串倒序,显示到控制台。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package test2;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
public class text {
 public static void main(String[] args) {
  String filename = "c:/test/FileDemo.java";
  File f1=new File(filename);
  try{
   RandomAccessFile raf1=new RandomAccessFile(filename,"r");
   byte[] b = new byte[(int)f1.length()];
   StringBuffer sb = new StringBuffer();
   for(int i = 0;raf1.read(b)!=-1;i++){
     sb.append(new String(b,"utf-8"));
   }
   System.out.println(sb.reverse().toString());
   raf1.close();
 }catch(IOException e){
  e.printStackTrace();
 }
 }
}

图片

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class text1 {

    public static void main(String[] args) {
        FileReader fr;
        BufferedReader br;
        File file = new File("c:/test/FileDemo.java");
        String str;
        int n = 0;
        try {
            fr = new FileReader(file);
            br = new BufferedReader(fr);
            while((str = br.readLine()) != null){
                n++;
                System.out.println(n + "." + str);
            }
        }catch(FileNotFoundException e){
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }
    }
}

图片

文件读写

目的

1 掌握文件读写的几种方法 2 FileOutputStream和FileInputStream类的使用。 3 基本数据类型之间的转换

实现文件读取后转换为大写后写入到目标文件中,其中src是指源文件,des是目标文件目录。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class FileDemo {

    //创建一个文件夹
    public static void createFolder(String path){
        File folder=new File(path);
        if(folder.exists()){
            System.out.println("文件夹已存在!");
        }else{
            //不存在时去创建
            folder.mkdir();
        }
    }
    //创建一个文件
    public static void createFile(String path,String filename){
        File file=new File(path,filename);
        //文件判断是否已存在
        if(file.exists()){
            System.out.println("文件已存在!");
            System.out.println(file.length());
        }else{
            try{
                file.createNewFile();
            }catch(IOException e){
                System.out.println("文件创建失败!");
            }
        }
    }
    //写文件
    public static void write(String path,String filename){
        try{
            String str="0123456789/nac";
            String Upstr = str.toUpperCase();//
            byte b[]=Upstr.getBytes();//
            FileOutputStream fos=new FileOutputStream(new File(path,filename));
            fos.write(b);
            fos.close();
        }catch(FileNotFoundException e){
            System.out.println("文件不存在");
        }catch(IOException e){
            System.out.println("写文件失败");
        }
    }
    //读文件
    public static void read(String path,String filename){
        try{
            int length=0;
            String str="";
        
            byte buffer[]=new byte[10];
            FileInputStream fis=new FileInputStream(new File(path,filename));
            
            while((length=fis.read(buffer, 0, buffer.length)) !=-1){
                str+=new String (buffer, 0, length);
            }
            System.out.println(str);//
            fis.close();
        }catch(FileNotFoundException e){
            System.out.println("文件不存在");
        }catch(IOException e){
            e.printStackTrace();
        }
    }
//
    public static void FileReaderCopy(String src,String des){
        try{
        FileReader fr=new FileReader(src);
        FileWriter fw=new FileWriter(des);
        char c[]=new char[1024];
        int len=0;
        
        while((len=fr.read(c, 0, c.length)) != -1){
            fw.write(c, 0, c.length);
        }
        fw.close();
        fr.close();
    } catch(FileNotFoundException e){
        System.out.println("文件不存在");
    }catch(IOException e){
        System.out.println("读写失败");
    }
    }
    //
    public static void BufferedReaderCopy(String src,String des){
        try{
            BufferedReader br=new BufferedReader(new FileReader(src));
            BufferedWriter bw=new BufferedWriter(new FileWriter(des));
            String str="";
            while((str=br.readLine()) != null){
                String Upstr = str.toUpperCase();//加入大写的变换
                bw.write(Upstr);//
                bw.newLine();
            }
            bw.close();
            br.close();
        } catch(FileNotFoundException e){
            System.out.println("文件存在");
        }catch(IOException e){
            System.out.println("读写失败");
        }
        }
    //复制
    public static void copy(String src,String des){
        try{
            FileInputStream fis=new FileInputStream(src);
            FileOutputStream fos=new FileOutputStream(des);
            int c;
            while((c=fis.read()) != -1){
                fos.write(c);
            }
            fos.close();
            fis.close();
        }catch(FileNotFoundException e){
            System.out.println("文件不存在");
        }catch(IOException e){
            System.out.println("读写失败");
        }
    }
    //复制文件
    public static void copy1(String src,String des){
        try{
            FileInputStream fis=new FileInputStream(src);
            FileOutputStream fos=new FileOutputStream(des);
            int c;
            byte buff[]=new byte[1024];
            while((c=fis.read(buff,0,buff.length)) != -1){
                fos.write(buff,0,c);
            }
            fos.close();
            fis.close();
        }catch(FileNotFoundException e){
            System.out.println("文件不存在");
        }catch(IOException e){
            System.out.println("读写失败");
        }
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        FileDemo.createFolder("c:/test");
        FileDemo.createFile("c:/test", "1.txt");
        FileDemo.write("c:/test", "1.txt");
        FileDemo.read("c:/test", "1.txt");
        FileDemo.read("c:/test", "FileDemo.java");
        FileDemo.BufferedReaderCopy("c:/test/FileDemo.java", "c:/test/FileDemo2.java");
        FileDemo.copy1("c:/test/1.mp3", "c:/test/2.mp3");
    }

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.07.30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Mysql Limit 调优
建表与插入数据 SQL对比 基本数据 创建表 CREATE TABLE student ( id int(10) NOT NULL AUTO_INCREMENT, name varchar(25) DEFAULT NULL, age tinyint(2) DEFAULT NULL, live varchar(255) DEFAULT NULL, PRIMARY KEY (id) ) ; 批量插入1百万条数据 DROP PROCEDURE IF EXISTS insert_Stu
tanoak
2019/04/18
1.8K0
Mysql Limit 调优
MySQL批量插入测试数据的几种方式
在开发过程中我们不管是用来测试性能还是在生产环境中页面展示好看一点, 又或者学习验证某一知识点经常需要一些测试数据, 这个时候如果手敲的话, 十行二十行还好, 多了就很死亡了, 接下来介绍两种常用的MySQL测试数据批量生成方式
终有救赎
2023/12/14
6740
MySQL批量插入测试数据的几种方式
mysql 插入1000w条数据
-- 创建1kw 数据量的数据库 create database bigData; -- 部门表 DROP TABLE IF EXISTS `dept`; CREATE TABLE `dept` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '部门id', `deptno` mediumint(9) NOT NULL DEFAULT '0' COMMENT '部门编号', `dname` varchar(20) NOT NULL DEFAUL
用户5927264
2019/07/31
1.9K0
mysql 插入1000w条数据
MySQL函数&存储过程
上一篇文章中说到了定位慢sql,拿到了慢sql后,我们要怎么重现问题呢?那么就需要造数据。函数和存储过程就可以帮助我们造大量的数据,用来重现生产环境的问题。
贪挽懒月
2021/06/02
2.7K0
MySQL函数&存储过程
mysql数据库批量插百万数据_sql数据库怎样批量添加数据
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
3.7K0
一次深夜优化MySQL亿级数据分页的奇妙经历
1月22号晚上10点半,下班后愉快的坐在在回家的地铁上,心里想着周末的生活怎么安排。
程序员小强
2021/07/06
6130
一次深夜优化MySQL亿级数据分页的奇妙经历
同事乱用分页 MySQL 卡爆,我真是醉了...
突然电话响了起来,一看是我们的一个开发同学,顿时紧张了起来,本周的版本已经发布过了,这时候打电话一般来说是线上出问题了。
Java旅途
2022/03/04
4340
同事乱用分页 MySQL 卡爆,我真是醉了...
一次深夜优化 MySQL 亿级数据分页的奇妙经历!
突然电话响了起来,一看是我们的一个开发同学,顿时紧张了起来,本周的版本已经发布过了,这时候打电话一般来说是线上出问题了。
终码一生
2022/04/14
3760
一次深夜优化 MySQL 亿级数据分页的奇妙经历!
[MySQL学习笔记]1. MySQL测试数据的构造
最后select rand_string(5);为测试是否能够胜场随机的五位长度的字符串
bsbforever
2020/08/18
8850
[MySQL学习笔记]1. MySQL测试数据的构造
Mysql--批量插入数据脚本
批量插入数据脚本 前置知识 创建一个随机产生字符串的函数rand_string(int); 创建一个随机产生一个数字的函数rand_num() 创建存储过程 调用存储过程 ---- 前置知识 CEILING 函数返回大于或等于所给数字表达式的最小整数。FLOOR 函数返回小于或等于所给数字表达式的最大整数 FLOOR 和 CEILING 返回值的数据类型都与输入的数字表达式的数据类型相同。 select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558, s
大忽悠爱学习
2021/11/15
3.2K0
MySQL索引优化与应用指南
索引类似于书本中的目录,它提供了一个数据项与实际数据存储位置之间的映射关系。通过索引,可以快速找到数据,而不需要遍历整个数据集。
用户11286421
2025/03/28
1770
MySQL索引优化与应用指南
MySQL索引实战附带存储过程
索引虽然是个可以提高查询效率的好东西,但是吗世间万物自然有好有坏,索引有索引的好处,自然就会有其不完美的地方,建立索引之后,MySQL除了维护数据文件之外自然又多了一份维护索引文件的任务,如果数据频繁的变动,维护两份索引文件的MySQL自然是有些招架不住。反馈的效率自然就会慢于没有索引的时候,索引文件自然是要有它落盘的地方,所以就要占用空间喽,虽然硬盘不贵但是这些都是要加进项目的预算哦。所以我们就要了解一下索引的特性才能有效地趋利避坏。
姜同学
2022/10/27
7330
MySQL索引实战附带存储过程
MYSQLg高级------批量插入百万级数据量
上面的作用就是为了下的 $$ (函数;的表达式)更好的执行;重启或者重新连接即可恢复默认
默 语
2024/11/20
570
MYSQLg高级------批量插入百万级数据量
谁说MySQL单表行数不要超过2000W?
网上看了一篇文章《为什么说MySQL单表行数不要超过2000w》,亲自实践了一下,跟原作者有不同的结论。原文的结论是2000W左右性能会成指数级的下降,而我的结论是:随着数据量成倍地增加,查询的时间也刚好是成倍增加,是成正比的。
用户10002156
2023/08/07
5640
谁说MySQL单表行数不要超过2000W?
Mysql存储过程代码例子
--定义一个新的命令结束符号,默认的是以;为结束标记 --同样的可以通过delimiter ;再设置;为结束标记 delimiter $$ --删除函数rand_string drop function rand_string $$ --创建函数rand_string(n):随机产生n个字符组成的字符串 create function rand_string(n INT) returns varchar(255) begin declare chars_str varchar(100)default 'a
用户8983410
2021/11/01
7510
索引的创建与设计原则(2)(适合创建索引情况 )
 由于开启过慢查询日志bin-log, 我们就必须为我们的function指定一个参数。 主从复制,主机会将写操作记录在bin-log日志中。从机读取bin-log日志,执行语句来同步数据。如果使 用函数来操作数据,会导致从机和主键操作时间不一致。所以,默认情况下,mysql不开启创建函数设 置。
一个风轻云淡
2022/11/15
4290
索引的创建与设计原则(2)(适合创建索引情况 )
MYSQL学习笔记——sql语句优化工具
一、定位慢查询                                                                                
Java架构师必看
2022/02/27
9270
性能分析之单条SQL查询案例分析(mysql)
在性能分析之SQL性能分析(mysql)文中,全面介绍了 MySQL 常见的性能分析工具。本文将以一个案例详细展开介绍如何针对单条SQL进行性能分析。
高楼Zee
2019/07/17
1.2K0
性能分析之单条SQL查询案例分析(mysql)
MySQL存储过程,视图,用户管理
一张虚拟表,就是将一个经常被使用的查询作为一个虚拟表,开发者查询的时候不需要再次书写SQL,而是直接调用对应的视图就可,调用视图以后MySQL会执行这个查询SQL。
石的三次方
2021/01/05
1K0
mysql批量数据脚本
mysql批量数据脚本 1 建表 create table dept( id int unsigned primary key auto_increment, deptno mediumint unsigned not null default 0, dname varchar(20) not null default "", loc varchar(13) not null default "" )engine=innodb default charset=gbk; create tabl
MonroeCode
2021/12/28
1.9K0
推荐阅读
相关推荐
Mysql Limit 调优
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验