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可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...
随机推荐
- Linux系统优化及基础命令
1.Linux系统优化及基础命令 2. vim编辑器 vim 操作命令 在命令模式下操作 pageup 往上翻页(重要指数****)pagedown 往下翻页(重要指数****)H 移动到屏幕首行gg ...
- java中,字符串和集合判断是否为空
字符串: 集合: 不为空
- 51. N-Queens N皇后
网址:https://leetcode.com/problems/n-queens/ 类似见:https://www.cnblogs.com/tornado549/p/10701124.html
- round函数解决oracle报错"OCI-22053: 溢出错误"的问题
继上次公司网站报错除数为0的问题,这次又来报错溢出错误,还是同一条语句!搜索网上的解决方法,发现问题描述和解决方法如下: Oracle 数值数据类型最多可存储 38 个字节的精度.当将 Oracle ...
- iOS 初探代码混淆(OC)
iOS 初探代码混淆(OC) 前言 自己做iOS开发也有几年的时间了,平时做完项目基本就直接打包上传到Appstore上,然后做上架操作了.但是最近,客户方面提出了代码安全的要求.说是要做代码混淆,这 ...
- python web 2
思路整理 过程:请求豆瓣电影 top 250 url='https://movie.douban.com/' 结果:得到网页的html 源码 (保存为hml文件 就可以用浏览器打开) 提示: Loca ...
- 安装vue-cli时-4058报错的解决方法
一.报错信息 安装vue-cli时-4058报错 二.解决办法 1.安装淘宝镜像 npm --registry https://registry.npm.taobao.org info undersc ...
- git 工作区管理
git工作区 git的工作区就是电脑中能看到的目录,比如我的learning文件夹就是一个工作区 版本库暂存区 工作去有一个隐藏的目录.git,这个不算工作区,而是git的版本库 git的版本库中存了 ...
- learning makefile string example
- easyui 面板title 加东西