Java入门教程系列(十):深入基础学习

更新:11-01 名人轶事 我要投稿 纠错 投诉

大家好,如果您还对Java入门教程系列(十):深入基础学习不太了解,没有关系,今天就由本站为大家分享Java入门教程系列(十):深入基础学习的知识,包括的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

异常是Java程序中出现的异常情况。

错误

它是Throwable 的子类,用于指示合理的应用程序不应尝试捕获的严重问题。也就是说,对于程序Error的情况,Java程序本身是无能为力的。例如硬件层面的问题、内存不足等。

例外

是Throwable 的一种形式,它指出合理的应用程序想要捕获的条件。也就是说,我们需要对程序中出现的Exception情况进行处理。

运行时异常

是Java虚拟机正常运行期间可能抛出的异常的超类。

异常分类

运行时异常:如果编译时没有处理,程序运行时就会出现问题,需要我们回来修改代码。编译时异常:问题必须在编译时处理,否则程序无法编译,更谈不上执行。代码示例

公共类MyExceptionDemo {

公共静态无效主(字符串[] args){

方法();

}

公共静态无效方法(){

整数a=10;

整数b=0;

System.out.println(a/b);

}

}假设我们把这个例子中的分母改为0,就会报错。控制台会输出:

20200521081143然后

java.lang.ArithmeticException:/by zero //这就是错误的原因

at MyException.MyExceptionDemo.method(MyExceptionDemo.java:13) //错误的代码位置

所以如果出现Exception,Java虚拟机会引导我们一步步找到问题所在。纠正一些相关的异常情况。

异常处理

尝试.抓住

公共静态无效主(字符串[] args){

System.out.println("程序开始执行");

方法();

System.out.println("程序结束执行");

}

公共静态无效方法(){

尝试{

整数a=10;

整数b=0;

System.out.println(a/b);

}catch (ArithmeticException e){

e.printStackTrace();

}

}

}

Throws

编译时异常

公共静态无效方法1()抛出ParseException {

字符串s="2099-09-09";

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

日期d=sdf.parse(s);

System.out.println(d);

}注意如果抛出异常,调用时必须捕获

尝试{

方法1();

} catch (ParseException e){

e.printStackTrace();

}

File

File是文件和目录路径的抽象表示,这意味着File可以封装成对象。

下面的f1、f2、f4是创建File对象的构造方法。

构造方法

//第一个结构体

文件f1=new File("/Users/caoxiaozhu/Java/javaDemo/javaDemo.imln");

//第二个结构体

File f2=new File("/Users/caoxiaozhu/Java/javaDemo/","javaDemo.iml");

//第三次构造

File f3=new File("/Users/caoxiaozhu/Java/javaDemo/");

文件f4=new File(f3,"javaDemo.iml");

创建功能

createNewFile() 创建一个文件

mkdir() 创建一个文件夹

创建目录(mac下)

String home=System.getProperty("user.home");

文件f2=new File(home + File.separator + "桌面" + File.separator + "Java");

System.out.println(f2.mkdir()); (在胜利下)

//在d盘下创建dd文件夹

文件f2=new File("d:\dd");

System.out.println(f2.mkdir());ps: 如果不指定路径,则默认在项目路径中创建。

删除功能

删除()

String home=System.getProperty("user.home");

文件f2=new File(home + File.separator + "桌面" + File.separator + "Java");

System.out.println(f2.delete());

判断功能

文件f1=新文件("aaa");

f1.createNewFile(); //f1.mkdir() 创建一个文件夹

System.out.println("是文件夹:"+f1.isDirectory());

System.out.println("是文件:吗"+f1.isFile());

System.out.println(":是否存在"+f1.exists());

//打印

是文件夹吗:false

是一个文件吗:true

:true存在吗?

获取功能

//获取绝对路径

System.out.println(f1.getAbsolutePath());

//获取相对路径

System.out.println(f1.getPath());

//获取文件名

System.out.println(f1.getName());

字节流

创建字节输出流

公共静态无效主(字符串[] args)抛出FileNotFoundException {

//创建字节输出流

FileOutputStream fos=new FileOutputStream("aa.txt");

}创建字节输出流实际上做了三件事:

调用系统函数,创建文件,创建字节输出流对象,fos对象指向文件aa.txt。完整代码

公共静态无效主(字符串[] args)抛出IOException {

//创建字节输出流

FileOutputStream fos=new FileOutputStream("aa.txt");

//写

fos.write(66);

fos.close();

}

写入字符串字节流

fos.write("hello".getBytes());

换行符

fos.write("rn".getBytes());

追加写入

FileOutputStream fos=new FileOutputStream("aa.txt",true);

异常处理

//异常处理

文件输出流fos=null;

尝试{

//创建并写入

fos=new FileOutputStream("aa.txt");

fos.write("hello world".getBytes());

}catch(IOException e){

//异常

System.out.println(e);

e.printStackTrace();

}最后{

//发布

如果(fos!=null){

尝试{

fos.close();

}catch(IOException e){

e.printStackTrace();

}

}

}ps: 因为这种异常处理写起来太麻烦,所以现在主要以抛出异常为主。

读取字节流

读取单个字节流

公共静态无效主(字符串[] args)抛出IOException {

//创建读取字节流对象

FileInputStream fim=new FileInputStream("aa.txt");

//读取数据的方法

整数由;

while((by=fim.read()) !=-1){

System.out.print((char)by);

}

fim.close();

}读取字节数组

FileInputStream fim=new FileInputStream("aa.txt");

字节[] bys=新字节[1024];

int 长度;

while((len=fim.read(bys))!=-1){

System.out.println(new String(bys,0,len));

}

fim.close();

字节缓冲区流

字节流一次读写一个数组比一次读写一个字节快得多。这就是添加数组等缓冲区的效果。 Java本身设计时,就考虑到了这种设计思想,提供了字节缓冲流。

字节缓冲区输出流BufferdOutputStream 字节缓冲区输入流BufferedInputStream 字节缓冲区输出流

公共静态无效主(字符串[] args)抛出IOException {

BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("aa.txt"));

bos.write("你好莱昂世界".getBytes());

bos.close();

}字节缓冲输入流

BufferedInputStream bis=new BufferedInputStream(new FileInputStream("aa.txt"));

整数由;

while((by=bis.read())!=-1){

System.out.print((char)by);

}

bis.close();

编码解码

//编码

字符串s="你好";

//byte[] bys=s.getBytes(); //默认GBK

byte[] bys=s.getBytes("UTF-8"); //指定UTF-8编码

System.out.println(Arrays.toString(bys));

//解码

String ss=new String(bys,"UTF-8");

System.out.println(ss);

编码输出流

OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("demo.txt"),"UTF-8");

osw.write("你好");

osw.close();

编码输入流

InputStreamReader isr=新

InputStreamReader(new FileInputStream("demo.txt"),"UTF-8");

char[] chs=新的char[1024];

int 长度;

while ((len=isr.read(chs))!=-1){

System.out.println(new String(chs,0,len));

}

osw.close();

isr.close();

FileReader FileWritter (改进版)

public static void main(String[] args) 抛出IOException {

FileReader fileReader=new FileReader("demo.txt");

FileWriter fileWriter=new FileWriter("demo1.txt");

//首先读取

//int ch;

//while ((ch=fileReader.read())!=-1){

//fileWriter.write(ch);

//}

//第二种读取

char[] chars=new char[1024];

int 长度;

while ((len=fileReader.read(chars))!=-1){

fileWriter.write(chars,0,len);

}

fileReader.close();

fileWriter.close();

}

BufferedWriter BufferedReader

public static void bufferedSteam() 抛出IOException {

BufferedReader bufferedReader=new BufferedReader(new FileReader("demo.txt"));

BufferedWriter bufferedWriter=new BufferedWriter(new FileWriter("demo1.txt"));

//写入数据

bufferedWriter.write("你好");

//第一种类型

//int ch;

//while ((ch=bufferedReader.read())!=-1){

//System.out.print((char)ch);

//}

//第二种类型

char[] chars=new char[1024];

int 长度;

while ((len=bufferedReader.read(chars))!=-1){

System.out.println(new String(chars,0,len));

}

bufferedReader.close();

bufferedWriter.close();

特殊功能

fileWriter.newLine() 开始新行

fileWriter.flush() 刷新

示例:将集合中的元素逐行输入到文本中

公共静态无效newCharacter() 抛出IOException {

Collection集合=new ArrayList();

集合.add("你好");

集合.add("世界");

collection.add("你好");

BufferedWriter fileWriter=new BufferedWriter(new FileWriter("demo2.txt"));

//遍历

for (String s : 集合){

fileWriter.write(s);

fileWriter.newLine();

fileWriter.flush();

}

用户评论

歇火

Java真是个好用的语言!

    有5位网友表示赞同!

素婉纤尘

终于开始学习Java基础了,感觉很有挑战性。

    有8位网友表示赞同!

柠栀

看了很多Java教程,还是想要深入理解它的基础知识。

    有16位网友表示赞同!

呆萌

希望这篇文章能让我更好地掌握Java的基本语法。

    有6位网友表示赞同!

代价是折磨╳

学习Java基础就像打打游戏,一步一个脚印慢慢来吧。

    有8位网友表示赞同!

清羽墨安

开始研究Java了,听说应用场景很宽泛.

    有18位网友表示赞同!

野兽之美

Java的代码看起来还是蛮清晰易懂的。

    有18位网友表示赞同!

雨后彩虹

之前接触过一些Java项目,现在打算好好学一下基础知识。

    有19位网友表示赞同!

此刻不是了i

感觉学习Java需要积累很多经验。

    有7位网友表示赞同!

半梦半醒半疯癫

期待这篇文章能讲解一些常用的Java数据类型.

    有11位网友表示赞同!

歆久

了解Java基础可以帮助我更好地学习更高阶的知识。

    有7位网友表示赞同!

墨城烟柳

我已经开始练习写简单的Java代码了!

    有15位网友表示赞同!

伤离别

感觉学习算法和数据结构的时候,掌握Java基础很重要。

    有10位网友表示赞同!

风中摇曳着长发

这篇文章一定很有用参考价值!

    有20位网友表示赞同!

何必锁我心

学习编程是件很有意思的事情,期待能通过学习Java入门到更专业的领域!

    有14位网友表示赞同!

鹿先森,教魔方

希望这篇关于Java的基础学习能够讲解的详细一点。

    有6位网友表示赞同!

棃海

从入门到精通,一步一个脚印慢慢地学吧。

    有19位网友表示赞同!

今非昔比'

这个标题看起来很有吸引力,期待读完它!

    有6位网友表示赞同!

南初

终于找到一篇讲解Java基础的文章!

    有15位网友表示赞同!

爱你的小笨蛋

学习Java可以开拓我的职业发展道路!

    有14位网友表示赞同!

【Java入门教程系列(十):深入基础学习】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活

上一篇:适合全职妈妈在家开展的兼职赚钱途径盘点:六大赚钱方法详解 下一篇:二建公路考试历年真题资料汇总:免费下载百度云、夸克网盘、迅雷网盘、阿里云盘完整版网站链接