您的位置:首页 > 编程语言 > Java开发

Java的IO流的操作和一些理解

2015-11-06 17:07 549 查看
关于IO流的处理,在一个程序中通常需要IO处理,因为它是非常重要的一个部分,但是在java中io流的使用也是个重点和难点,因为io操作涉及到一些关于文件的操作,从创建到生成,但是一个重点。在io操作中它的异常处理就显得很重要了,当你在进行异常处理的时候一般都是用的是throws的异常处理,异常类型是IOException进行处理,今天刚刚接触IO的处理方法,可能不是太明白,在后期的学习中,在不断的总结和不断地完善。

在进行Io处理的时候,需要用到一些方法,比如FileInputStream或者FIleOutputStream的流处理。FileInputStream的获取的返回值一般都使用InputStream接受。FileOutputStream一般使用OutputStream进行接收。

下图是关于IO流 的结构图:



我们可以从图片中看到为什么FileInputStream和FileOutputStream的返回值要用InputStream和OutputStream来获取。

关于Io的相关的资料可以去Java的在线文档进行查看,地址是[Java 1.8官方文档]http://docs.oracle.com/javase/8/docs/api/)里面有个Java.io的包。所有的函数都已经在里面了。我很想阅读以下它的官方文档,但是自己的英语水平有限,可能还不能读懂他的官方文档,但是我们借用翻译器慢慢来阅读。也会提升一下自己的英语水平嘛!!

不说这个,还是想贴上代码,在进行说明

这是一个关于创建一个文件并且让它显示在控制台里面的例子:

IOTest.java

package com.file.ioTest;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class IOTest {

public static void main(String[] args) {

try {
byte bWrite[] = {12, 21, 3, 4, 55 };
OutputStream os = new FileOutputStream("Test.txt");//创建一个文件,没有的话创建,有了的话就不变。
for (int x = 0; x < bWrite.length; x++) {
os.write(bWrite[x]);//将BWrite里面的二进制写入都Test.txt文件里面去
}
os.close();//最后在关闭输出流,这个很关键,没有关闭的话可能会导致资源的大量的浪费,和被占用
InputStream Is = new FileInputStream("Test.txt");//创建一个输入流用来获取到这个文件
int size = Is.available();//使用输入流的available进行读取文件的大小
for (int i = 0; i < size; i++) {
System.out.println( Is.read());//使用循环进行显示,将Read()的返回值类型进行强制转化的话会有个问题,输入到控制台的数据都是乱码的,文件中的数据也是乱码的。
}
Is.close();//最后关闭输入流。
} catch (FileNotFoundException e) {

e.printStackTrace();
} catch (IOException e) {

e.printStackTrace();
}

}

}


第二是怎么创建一个路径:

CreateDir.java

package com.file.ioTest;

import java.io.File;

public class CreateDir {

public static void main(String[] args) {
String dirName="temp/java/bin";//这是一个路径的字符串
File f=new File(dirName);// 这个开始创建一个文件
//创建路径
if(f.mkdirs()){//使用mkdir的方法创建一个路径,返回值是Boolean型的
System.out.println("创建成功");
}else{
System.out.println("创建失败!");
}
}

}


第三个是如何读取一个路径和下面有哪些文件

ReadDir.java

package com.file.ioTest;

import java.io.*;

public class ReadDir {

public static void main(String[] args) {
File file=null;
String[] paths;
try {
file=new File("temp");//先将地址定位到temp下
paths=file.list();//使用list获取temp下面的文件和文件夹的个数
for(String path:paths){
System.out.println(path);通过for循环打印一下文件的名称
}
} catch (Exception e) {

e.printStackTrace();
}

}

}


IO流处理是个大的难点,不是一下就可以理解,所以,还要在后面的学习理解中在进行完善。这篇文章先写到这里,以后有新的理解的时候在做优化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java io流 异常处理