`
arlwei
  • 浏览: 6260 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

文件、异常、字节流基础知识归纳

阅读更多

    文件这个概念我们随时会用到。说到计算机上的文件概念,分为三种:真实的文件,文件夹,虚拟文件(内存或JVM上的)。在Java中要找到和使用文件,就要明白相对路径和绝对路径的概念。相对路径,根据我的理解,就是你在运行一个程序时它所调用的文件所能达到的最大范围。绝对路径很好理解,带上你的盘符就是了。在Linux和W in平台上两者的路径分隔符和名字分隔符不同,所以推荐下面要讲的Java中File类相应属性来区分。

    下面来讲一下java.io包下的File类。File类为了实现后面要讲的基于文件的各种操作而定义了许多方法。

    File类得属性:

    public static String pathSeparator:表示路径分隔符(被表示为一个字符串)

    public static String separator:表示名字分隔符(被表示为一个字符串)

    public static String pathSeparatorChar:路径分隔符(一个字符)

    public static String separator:名字分隔符(一个字符)

 

    File类构造器

    File(File parent,String child)

    File(String pathname)

    File(String parent,String child)

    File(URL url)

 

    File类重要方法

    boolean canExecute():测试是否可执行

    createNewFile():要查找的文件不存在时,创建一个新文件

    createTempFile(String prefix, String suffix, File directory):在给定路径上创建,使用指定前缀和后缀

    boolean delete():删除文件

    String getName():获得文件名(不带路径)

    boolean exits():是否存在

    equals(Object obj):测试此抽象路径名与给定对象是否相等

    File getAbsolutePath():获取绝对路径,以文件形式

    String getAbsolutePath()

    String getParent():返回父目录字符串,若无,返回null

    String getPath():获取路径字符串

    boolean isDirectory():是否是目录

    boolean isFile():是否是文件

    long length():长度

    String[] list(FileNameFliter fliter): 列出过滤后的文件名字符串数组

    File[] listFiles():返回抽象路径数组

    static File[] listRoots():返回磁盘分区情况,并放入数组

    boolean mkdir():更具对象路径创建一个一级目录。若已存在同名文件,则抛出异常信息

    boolean mkdirs():可以创建多级目录

    boolean renameTo(File dest):重命名

    String toString():返回抽象路径名的路径字符串

 

 

异常是我们这些学习者的好朋友。即使一开始你不喜欢它,但还是要试着用它。Java中的异常都是Exception的子类。说说常见的四种异常,第一种是数组越界(不强制检测),第二种是自动转型(子类向父类转型时会强制检测),第三种是空指针异常(即只声明了对象,未实例化,便调用方法等,属于强制检测),第四种便是IO异常(强制检测)了。

    要解决出现的异常,Java有一个异常处理机制。

    try catch处理机制

    try相当于一个优先执行的代码,若是有异常,不符合原来的预期,则送到catch去。一个try可以有多个catch。

    示例:try{

                可能抛出异常的代码.......

                //若没有异常。则执行下面的代码

                代码块A

               }

            catch(Exception ef){

               //出现异常时执行的代码

               代码块B

               }

另外,在catch中可以加上ef.printStackTrace();打印出异常的详细信息。

 

throws抛出异常 

    用thorws可以向上抛出异常,但你终究要处理这个异常。在方法体中用throws抛出异常的话,在方法声明中必须加上throws关键字声明。

 

throw自定义抛出异常

用throw可以自定义抛出一个异常,这时要用throws去接收。

 

finally

    加上finally后,无论怎样,都会执行代码块

 

 

最后是流的基础知识:

     流本身就是一个抽象的概念,java中将输入和输出抽象为流。流分为输入流和输出流,输入流是我们从某个地方(网络,某个文件)读取东西,输出流是我们将数据发送到某个地方(网络,某个文件,控制台)。除了按方向分可分为输入流和输出流外,按性质分,还可以分为基础字节流(原始流)、过滤流(节点流)、基础数据类型流、对象流。差不多都能按照名字猜得到具体是什么情况。

      只说基础字节流中的一些内容。

      InputStream是java.io包下的一个抽象类,是基于字节的一个个读取。本身是一个抽象类。

      InputStream下的重要方法:

       int available():有多少个字节可读

       void close():用作关闭流对象

       int read():读到末尾是返回-1.会自动读取下一个字节的内容。

       int read(byte[] b):用到从流中读到的byte

因为创建的对象是InputStream的子类的对象,所以我们用父类型变量引用,方便统一使用

java.io.InputStream ins = new java.io.FileInputStream(fileName);

File srcFile = new File(fileName);

 

      OutputStream相对于InputStream,在OutputStream定义的常用方法:

       void close():原因同InputStream中的.

       void flush():将输出流强制输出到目标中(文件或网络上)

       void wite(byte[] b, int off, int len):将数组中的一部分写到流中

       void wite(byte[] b):将数组写到流中

       void write(int b):向流中写入一个byte流

 

 

 

 

到这里就结束了,由于是课堂小结,属于新手性质,理解错误再所难免,知识也不是很全。不喜勿喷。     

 

 

 

分享到:
评论

相关推荐

    Java基础知识点总结.docx

    Java的IO流处理数据输入和输出,包括字节流、字符流、文件流、对象流等,还有缓冲流、转换流、管道流等。 八、网络编程: 涉及网络协议、UDP和TCP传输,以及套接字编程。 九、反射技术: 反射允许程序在运行时检查...

    java基础知识点框架图

    - **输入输出流的分类**:字节流和字符流,以及它们的读写操作。 - **缓冲区**:BufferedReader和BufferedWriter等提高读写效率。 - **文件操作**:File类的常用方法,如创建、删除、重命名文件。 7. **多线程**...

    java post文件流的操作

    根据提供的文件信息,...以上就是从给定文件的标题、描述、标签以及部分内容中总结出来的知识点,涵盖了Java POST请求发送与接收文件流的基础操作以及Spring MVC中处理文件上传的相关内容。希望这些信息对你有所帮助。

    运用X-mind线性思维对JAVA知识进行归纳

    6. **输入/输出流**:Java的IO系统支持对文件、网络、内存等的读写操作,包括InputStream、OutputStream、Reader、Writer等抽象基类和具体实现。 7. **多线程**:Java内置了对多线程的支持,可以通过实现Runnable...

    JavaIO流详解归纳.pdf

    Input/Output 流是字节流, Reader/Writer 是字符流。Input/Output 流是 Java 中的基础流,所有的输入输出操作都是基于这个流的。Reader/Writer 流是对 Input/Output 流的扩展,提供了字符流的功能。 Java 的 IO ...

    java重点知识归纳.pdf

    这份"java重点知识归纳.pdf"文档概述了Java开发的基础知识,包括安装、环境配置、版本、编程步骤、注释、变量与常量、数据类型以及类型转换等方面。 1. **JDK与JRE**:JDK是Java开发工具包,包含了开发Java应用程序...

    JAVA核心知识点整理

    Java的基础知识包括语法、面向对象特性(封装、继承、多态)、异常处理、输入/输出流以及集合框架。了解基本类型、类、接口、包的概念是Java学习的起点。异常处理是程序中必不可少的部分,用于捕获和处理运行时错误...

    java知识总复习[归纳].pdf

    7. **I/O处理**:Java的I/O流系统支持读写文件、网络通信等,包括字节流、字符流、缓冲流和对象流等。 8. **线程**:Java支持多线程编程,通过`Thread`类或实现`Runnable`接口创建线程,以及同步机制如`...

    java基础学习视频链接

    - **字符流与字节流**:字符流用于处理文本文件,字节流则适用于所有类型的文件。 - **缓冲区**:使用BufferedReader和BufferedWriter等缓冲流可以提高读写效率。 以上内容覆盖了Java基础学习的核心知识点,对于...

    2017-2018学年度《Java程序设计》IEET认证文档.pdf

    10. IO流与文件操作:流的概念、字节流与字符流、文件与对象串行化。 11. Java网络编程:网络包中的相关类、基于TCP或UDP的网络程序编写。 课程的评量方式包括小考、期中考试、期末考试、作业、书面报告、口头报告...

    Java期末考试选择题

    根据提供的文件信息,我们可以归纳和扩展出以下关键的Java知识点: ...以上是根据题目描述整理出的关键知识点,涵盖了Java基础知识、集合框架、异常处理、输入输出等多个方面,希望对理解和学习Java有所帮助。

    Java范例开发大全代码

    5. **IO流**:包括文件操作、网络通信,以及不同类型的输入/输出流(如字节流、字符流、缓冲流和对象流)。 6. **多线程**:线程的创建(通过Thread类或实现Runnable接口)、线程同步(synchronized关键字、wait()...

    高级语言往年期末试卷.zip

    通过学习和解答这些试题,学生不仅能巩固高级语言的基础知识,还能提升分析问题、解决问题的能力,为未来从事软件开发、系统分析等工作打下坚实基础。在复习过程中,理解概念、实践编程、归纳总结是关键步骤,同时也...

    2010新版Java教程

    根据提供的文件信息,我们可以归纳以下知识点,内容将涵盖Java语言的基础概念、核心特性以及相关的应用领域。 首先,Java是一种面向对象的编程语言,它是由Sun Microsystems公司于1995年发布的。Java的设计目标旨在...

    《java语言基础》考试题.docx

    根据提供的文档信息,我们可以归纳出以下关键知识点,这些知识点主要涉及Java语言的基础概念和技术细节。 ### 1. 继承机制的重要性 Java中的继承机制是一种非常重要的特性,它允许一个类(子类)继承另一个类(父类...

    Java软件开发实战 Java基础与案例开发详解 10-9 练习题 共5页.pdf

    根据给定文件的信息,我们可以将相关知识点归纳如下: ### 一、Java基础概念 #### 1.1 什么是Java? Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司在1995年发布。它旨在简化C++语言的复杂性,...

    黑马JAVA49期全套教学视频

    ### 一、Java基础知识 #### 1. Java语言简介 - **定义与特点**:Java是一种面向对象的编程语言,它具有简单性、面向对象、健壮性、安全性、平台无关性等特点。 - **发展历程**:自1995年由Sun Microsystems公司发布...

    study1010_bursttpf_java学习_源码.zip

    4. **IO流**:学习如何读写文件,理解字节流和字符流的区别,以及缓冲区的概念。 5. **多线程**:线程的创建、同步机制(如synchronized关键字、wait/notify机制)、线程池等。 6. **网络编程**:Socket通信,了解...

    全国2013年1月高等教育自学考试Java语言程序设计(一)试题.doc

    - **字符流与字节流**:Reader、Writer与InputStream、OutputStream的区别。 ### 图形用户界面(GUI) - **Swing组件**:JFrame、JButton、JTextField等。 - **布局管理器**:FlowLayout、BorderLayout、GridLayout...

Global site tag (gtag.js) - Google Analytics