JAVA 输入/输出流

JAVA 输入/输出流

本次分3个部分详细解说关于Java.io的使用

 

1、标准设备输入/输出

a) 标准输入/输出类System.

 

System类提供的静态方法中,分别以下几类功能:

标准输入、标准输出和错误输出流。

对外部定义的属性和环境变量的访问。

加载文件和库。

快速复制数组。

取得系统时间,即System.currentTimeMillis();

系统退出命令,即System.exit();

 

Read方法读取一个字节

package Test;

 

import java.io.IOException;

 

public class test {

public static void main(String[] args) {

int c;

try {

while ((c = System.in.read()) != 0) {// 读入一个字节

System.out.write(c);// 输出一个字节

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

运行该程序,在控制台输入一段字符后按回车键,就会调用read()函数的循环,每读到一个字节就会输出一个字节,因此回车前输入的字符串就会原样输出

 

Read(byte[] b) 读取一个字节数组

package Test;

 

import java.io.IOException;

 

public class test {

public static void main(String[] args) {

 

try {

byte[] b = new byte[100];// 创建字节数组

System.in.read(b);// 读取到数组中

System.out.write(b, 0, 100);// 输出字节数组

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

 

运行该程序,输入一个字符串,回车后就会输出回车前字符串的前100个字符。如果你输入的字符串长度小于100,那么补全100个字节,剩余的字节将会使用方框表示,实际上是这个字节没有数据。如果输入的字符串长度大于100,多余的字节就会补抛弃。

 

循环读取控制台的输入。

package Test;

 

import java.io.IOException;

 

public class test {

public static void main(String[] args) {

 

try {

while (true) {

byte[] b = new byte[100];// 创建字节数组

System.in.read(b);// 读取到数组中

String string = new String(b);

System.out.println(string);

// System.out.write(b, 0, 100);// 输出字节数组

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

 

 

 

 

 

控制台读写类Console.

2、文件基本处理

a) 文件操作类File

i. 文件操作类File:对目录或文件的创建、重命名、删除、文件列表、判断是否存在

 

File 类是Java文件处理的最基础的类,它用于实现对目录的创建、删除、对文件创建、

重命名、删除。因此。File类操作的对象分为两类:目录和文件

 

例子:

 

创建文件的四种方法:

public class FileTest {

public static void main(String[] args) {

File path = new File("D:/demo");// 目录对象

File file = new File("D:/demo/test.txt");// 文件对象

 

File file1 = new File("D:/demo","test.txt");// 目录文件一起创建

 

File file2 = new File("file://D:/demo/test.txt");// 创建一个新的File实例

 

File file3 = new File(path,"text.txt");

}

 

}

if(path.isDirectory()){//是否是目录

...

}

if(file.isFile()){//是否是文件

..FileTest.

}

 

if(path.exists()){ //检查目录是否存在

}

if(file.exists()){//检查文件是否存在

}

 

创建目录或文件:

Mkdir():创建一个目录

Mkdirs();创建所有目录

createNewFile();创建一个文件

 

创建多层目录的时候要用mkdirs(),mkdir()只能在已有目录下创建一个子目录,而对于createNewFi()则需要捕捉IOException。例如:

 if(!path.exists()){//如果目录不存在

path.mkdir();

path.mkdirs();

}

if(!file.exists()){//如果文件不存在则创建

try {

file.createNewFile();  

} catch (Exception e) {

// TODO: handle exception

}

查看目录下的文件列表,并输路径名:

File[] fileList = path.listFiles();

for(int i = 0 ;i<fileList.length;i++){ 

System.out.println(fileList[i].getAbsolutePath());

   生命名文件名:

//重命名

file.renameTo(new File("demp.txt"));

//删除目录

path.delete();

//删除文件

file.delete();

 

 

 

ii. 文件搜索FileFilterFilenameFiter

iii. 文件随机读写类RandomAccessFile.

b) 文件搜索类FileFilterfilenameFilter

c) 文件随机读写类RandomAccessFile.

3、输入/输出流

a) 流的动作原理:包括输入流、输出流、输入流链、输出流链的运作原理

b) 输入字节流InputSteam:11个实现类,包括如下:

ByteArrayInputStream;

FileOutputStream;

ObjectOutputStream;

StringBufferInputStream;

PipedInputStream;

SequenceInputStream;

FilterInputStream;

BufferedInputStream;

DataInputStream;

LineNumberInputStream;

PushbackInputStream;

 

c) 输出字节流OutputStream:8个实现类,包括如下

ByteArrayOutputStream;

FileOutputStream;

ObjectOutputStream;

PipedOutputStream;

FilterOutputStream;

BufferedOutputStream;

DataOutputStream;

PrintStream;

d) 输出字符流Reader:共8个实现类,包括扣下:

CharArrayReader;

FileReader;

StringReader;

PipedReader;

FilterReader;

BufferedReader;

LineNumberReader;

PushbackReader;

e) 输出字符流Writer: 7个实现类,包括如下:

CharArrayWriter;

FileWriter;

StringWriter;

PipedWriter;

FilterWriter;

BufferedWriter;

PrintWriter;

f) 字节流与字符流的转换:

nputStreamReader;

OutputStreamWriter;

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值