java基础(四)

    我决定把课程分为五个板块,现在来介绍一下这些板块都会说些什么。第一个板块当然是介绍结构化程序设计的内容,但是不会很详细,最好有C语言或者C++基础,因为我只会重点说一些部分。第二个板块就是面向对象程序设计,也是重点讲解一些关系。第三个板块介绍特殊的结构:数组、字符串、向量,哈希表,泛型和枚举。第四个部分就是异常处理和文件数据流操作。第五个部分会讲解一些swing图形用户界面程序设计和介绍编程规范。课程很水,有一些有帮助,有一些没有帮助,那么就择优一起学习吧,如有错误,评论指出哦。

讲解第四个大板块:

四、异常处理和文件数据流操作

设计一个严谨的程序是一项繁琐的工作,各种各样的情况都应当充分考虑。异常处理方法是一种非常有用的辅助性程序设计方法,采用在这种方法可以在程序设计时将程序的正常流程与错误处理分开,有利于代码的编写与维护。

1、异常处理

    异常分为两大类:受检异常(Exception)与非受检异常(Unchecked Exception)。非受检异常包括运行时异常和错误异常。知道异常的这些基本概念,其实我们要做的就是学会怎么处理异常,怎么使用特殊的结构。例如try-catch-finally结构

处理异常方法有两种,首先看捕捉异常方式

public class EceptionCatch
{
    public static void main(String args[])
    {
        try
        {
            System.out.println("try语句块");
            throw new Exception();
        }
        catch(Exception e)
        {
            System.err.println("catch语句块");
            e.printStackTrace();
        }
        finally
        {
            System.out.println("finally语句块");
        }
    }
}

所以,打印的结果就是:

 

再来看第二个方式:转移异常

public class Exception
{
   public static void throwException()
    {
        System.out.println("产生并抛出ArithmeticException类型的异常");
        throw new ArithmeticException();
    }
    public static void catchArrayException()
    {
        try{
            throwException();
            System.out.println("在try语句块中的多余语句");
            }
        catch(ArrayIndexOutOfBoundsException e)
        {
            System.err.println("方法catchArrayException捕捉到异常");
        }
        finally
        {
            System.out.println("方法catchArrayException的finally语句块");
        }
        System.out.println("方法catchArrayException运行结束");
    }
    public static void main(String args[])
    {
        try
        {
            catchArrayException();
        }
        catch(ArithmeticException e)
        {
            System.err.println("方法main捕捉到异常");
        }
        finally
        {
            System.out.println("方法main的finally语句块");
        }
        System.out.println("异常 处理 结束");
    }
}

运行结果:

 

2、文件与数据流

   对于文件的操作,从学C语言到现在的java,我觉得最有效的办法就是写代码,看实例,当然,书上的内容也需要看一遍。

给出一个读文件"test.txt"的内容并输出的实例:

import java.io.FileInputStream;
import java.io.IOException;
public class EchoFile
{
    public static void main(String args[])
    {
        try
        {
            FileInputStream f = new FileInputStream("test.txt");
            int i;
            int b = f.read();
            for(i=0;b!=-1;i++)
            {
                System.out.print((char)b);
                b=f.read(();
            }
        System.out.println();
        System.out.println("文件\"tex.txt\"字节数为"+i);
        f.close();
        }
        catch(IOException e)
        {
            System.err.println("发生异常:"+e);
            e.printStackTrace();
        }
    }
}

再有将字符串写入到文件"out.txt"的例程

import java.io.FileOutputStream;
import java.io.IOException;
public class WriteFile
{
    public static void main(String args[])
    {
        String s = "文件输出";
        byte[] b = s.getBytes();
        try{
                FilePutputStream f = new FileOutStream("out.txt");
                f.write(b);
                f.flush();
                f.close();
            }
        catch(IOException e)
        {
            System.err.println("发生异常:"+e);
            e.printStackTrace();
        }    
    }
}

但是我们在进行编写文本编辑器这类代码时,带缓存的输入流和输出流就比较方便,可以看我java专栏里面的代码。

这里给出带缓存读写器实例:

import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOExceprion;
import java.io.LineNumberReader;
public class BufferedReaderWriter
{
    public static void main(String args[])
    {
        try{
                BufferedWriter bw = new BufferedWriter(
                new FileWriter("test.txt"));
                bw.write("有志者,事竟成");
                bw.newLine();
                bw.wtire("苦心人,天不负");
                bw.newLine();
                bw.close();
                LineNumberReader br = new LineNumberReader(
                new FileReader("test.txt");
                String s;
                for(s=br.readLine();s!=null;s=br.readerLine())
                    System.out.println(br.getLineNumber()+":"+s);
                br.close;}
        catch(IOEception e)
        {
            System.err.println("发生异常"+e);
            e.printStackTrace();
        }
    }
}

学好文件操作就需要去动手做实例,这是最快的方法,也是很有用的方法。

 

后记:

   那么最后一个章节,冲鸭!如果有误,评论指出,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

threecat.up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值