Java学习笔记(7)
File类用于处理文件和目录
isDirectory()用于检查当前对象是否目录,isFile()用于检查当前对象是否文件
构造File对象时,传入的路径不一定要求存在,要通过exists()方法判断是否存在
使用Scanner类从文件中读取文本数据,使用PrintWriter类向文件中写入文本数据
如果文件不存在,PrintWriter将创建一个新的文件;如果文件已存在,文件中的原有内容将被擦除。print(),println(),printf()三个方法向文件中写数据,最后不要忘记调用close()方法关闭文件
另外还可以通过try-with-resources的语法,自动释放资源
try(java.io.PrintWriter writer=new java.io.PrintWriter(file)){
//文件写入操作
}
括号里声明的资源,在try代码块运行结束后,会自动释放,括号里可能同时声明多个资源。资源对象必须是AutoCloseable的子类。资源必须在一条语句中声明并创建完毕
使用Scanner读取文件,要调用下面这个构造函数
Scanner input = new Scanner(new File(fileName));
Scanner(string)用于直接从string变量中读取数据。
换行符在windows下是\r\n, 在UNIX系统下是\n, 可以通过如下语句获取当前系统的换行符
String lineSeparator = System.getProperty("line.separator");
判断是否已读到文件结尾处,用Scanner.hasNext();
通过传递Url给Scanner, 可以读取网络资源
System.out.println("Enter a URL: ");
String URLString = new Scanner(System.in).next();
try {
URL url = new URL(URLString);
int count = 0;
Scanner input = new Scanner(url.openStream());
while (input.hasNext()) {
String line = input.nextLine();
count += ((String) line).length();
}
System.out.println("The file size is " + count + " characters");
} catch (MalformedURLException e) {
System.out.println("Invalid URL");
} catch (IOException e) {
System.out.println("I/O errors: no such file");
}
抽象方法只有定义,没有实现,需要在子类中实现;含有抽象方法的类,必须定义为抽象类;抽象类不能实例化。
子类要实现父类的所有抽象方法,否则子类也要定义成抽象类,抽象方法都是非静态方法
抽象类不能通过new操作进行实例化,但你仍然可以定义构造器,以在子类中被调用
含有抽象方法的类必须是抽象类,抽象类不一定要包含抽象方法
子类中可以重写父类中的方法,并把它定义为抽象方法(不常用)
即使父类是实在类(concrete),子类也可以定义成抽象(所有类的基类都是Object, Object是实在类)
虽然不能通过new创建抽象类的实例,但是抽象类可以作为一个类型使用
Java学习笔记(7)的更多相关文章
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记-多线程-创建线程的方式
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...
- 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类
static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...
随机推荐
- Django web框架-----视图与网址的不同请求方式
在网页上做加减法 说明:mytestsite是django框架下的项目,quicktool是mytestsite项目中的应用 方式一:采用 /add/?a=1&b=4这种get方法进行 qu ...
- 关于PHP的mkdir函数
问题:dedecms5.7 php5.6 我想项目根目录下的uploads文件夹下动态创建一个文件夹/uploads/imgs $path = '/uploads/imgs'; mkdir($path ...
- Vue之添加全局变量
定义全局变量 原理: 设置一个专用的的全局变量模块文件,模块里面定义一些变量初始状态,用export default 暴露出去,在main.js里面使用Vue.prototype挂载到vue实例上面或 ...
- 初步接触gulp
首先是安装nodejs,通过nodejs的npm全局安装和项目安装gulp,其次在项目里安装所需要的gulp插件,然后新建gulp的配置文件gulpfile.js并写好配置信息(定义gulp任务),最 ...
- springboot使用fastjson中文乱码解决方法 【转载】
以前使用fastjson替换jackson时,没有直接在页面打印过json,都是js使用没有出现乱码,偶然 打印出来出现了中文乱码 之前使用的配置方式 @Configuration public cl ...
- xibai的PCI卡在英文系统上安装报错
通过购买时自带的光驱,在里面直接找相对应的型号的驱动,直接安装,即可 不要通过电脑管理,然后更新驱动的这种方式,会报错
- 性能测试遭遇TPS抖动问题
目前性能测试组正在对独立秒杀进行性能压测,性能抖动特别厉害. 由于独立秒杀的接口大多数是经过volicity渲染过的页面和数据的整合,所以在压测的时候有很多volicity的错误.初步判定,感觉是vo ...
- fetch跨域浏览器请求头待研究
fetch('https://wwww.baidu.com', {headers: { "Access-Control-Allow-Origin": "*", ...
- 前端开发面试题总结之——JAVASCRIPT(二)
___________________________________________________________________________________ 相关知识点 数据类型.运算.对象 ...
- PHP取凌晨时间戳
百度出来的没一个正确答案 在此纠正 strtotime('today midnight'); // 今天凌晨时间戳 strtotime('+1 day midnight'); // 明天凌晨时间戳