流(stream)简介

流:在java程序中,对于数据的输入/输出操作以”流”(stream)方式进行;J2SDK提供了各种各样的”流”类,用以获取不同种类的数据;程序中通过标准的方法输入或输出数据

输入/输出流的分类:java.io 包中定义了多个流类型(类或抽象类)来实现输入/输出功能;可以从不同的角度对其进行分类:按数据流的方向不同可以分为输入流和输出流;按处理数据单位不同可以分为字节流和字符流;按功能不同可以分为节点流和处理流

四种抽象流类型:InputStream(字节流)、OutputStream、Reader(字符(2字节)流)、Writer

节点流:可以从一个特定的数据源(节点)读写数据(如文件、内存)

处理流:“连接“在已经存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能
/*TestFileInputStream.java*/
import java.io.*;

public class TestFileInputStream {
public static void main(String[] args) {
int b = 0;
FileInputStream in = null;
try { //从文件输入
in = new FileInputStream("F:/TestFileInputStream.java");
//分隔用一正斜线(/)或二反斜线(\\)
} catch (FileNotFoundException e) {
System.out.println("找不到指定文件");
System.exit(-1);
}

try {
long num = 0;
while ((b = in.read()) != -1) { // 以字节为单位读取
System.out.print((char) b);
num++; // 计数
}
in.close();
System.out.println();
System.out.println("共读取了 " + num + " 个字节");
} catch (IOException e1) {
System.out.println("文件读取错误");
System.exit(-1);
}
}
}

 /*TestFileOutputStream.java*/
import java.io.*;

public class TestFileOutputStream {
public static void main(String[] args) {
int b = 0;
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("F:/HelloWorld.java");//从文件读入
out = new FileOutputStream( "F:/HW.java");//输出的目的文件

while ((b = in.read()) != -1) { // 以字节为单位读取
out.write(b);
}
in.close();
out.close();
} catch (FileNotFoundException e2) {
System.out.println("找不到指定文件");
System.exit(-1);
} catch (IOException e1) {
System.out.println("文件复制错误");
System.exit(-1);
}
System.out.println("文件已复制");
}
}

/*TestFileReader.java*/
import java.io.*;

public class TestFileReader {
public static void main(String[] args) {
FileReader fr = null;
int c = 0;
try {
fr = new FileReader("d:\\TestFileReader.java"); //读入文件
@SuppressWarnings("unused")
int ln = 0;
while ((c = fr.read()) != -1) { // 以字符为单位读取
// char ch = (char) fr.read();
System.out.print((char) c);
// if (++ln >= 100) { System.out.println(); ln = 0;}
}
fr.close();
} catch (FileNotFoundException e) {
System.out.println("找不到指定文件");
} catch (IOException e) {
System.out.println("文件读取错误");
}

}
}

/*TestFileWriter.java*/
import java.io.*;

public class TestFileWriter {
public static void main(String[] args) {
FileWriter fw = null;
try {
fw = new FileWriter("d:/unicode.dat");//写入的目的文件
for (int c = 0; c <= 50000; c++) {
fw.write(c); // 将0至50000的字符写入unicode.dat
}
fw.close();
} catch (IOException e1) {
e1.printStackTrace();
System.out.println("文件写入错误");
System.exit(-1);
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值