Java中I/O流的应用
iLeGeND
packagecom.hp.io;
/** I/O流的应用 * 实现目标: * 首先创建一个文件 * 通过键盘向文件添加内容 * 然后把文件的内容打印到控制台 * */
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Experiment1 {
public static void main(String[] args) throws IOException {
//throws IOException 抛出异常//寻找文件 如果不存在 就在指定位置建一个
File file = new File("D:/HelloWord.java");
if(!(file.exists())){//判断文件是否已存在
file.createNewFile();//如果不存在 新建一个
}
//向文件添加内容
:先把内容读到程序 然后再把程序中的内容写出到文件 //提示内容
System.out.println("请输入任意字符");
//把字节流转为字符流
InputStreamReader input = new InputStreamReader(System.in);
//加缓冲 可整行读入键盘信息
BufferedReader br = new BufferedReader(input);
//把整行信息 赋给 字符串str
String str=br.readLine();
//输出 str
System.out.println(str);
//将文件写到文件 //字节流 true 表示在原来内容基础上操作
FileOutputStream fos = new FileOutputStream("D:/HelloWorld.java",true);
//字符流
OutputStreamWriter f = new OutputStreamWriter(fos);
//写到文件
f.write(str);
//关闭流 注意顺序 先关离文件远的流
f.close();
fos.close();
//讲文件内容打印到控制台 :
// 首先要从文件中读入程序 然后从程序写出到控制台 //字符流输入
FileInputStream fis = new FileInputStream("D:/HelloWorld.java");
//字节流输入
InputStreamReader fo=new InputStreamReader(fis);
//定义 变量 i;
int i;
/* read()读取单个字符。 读取的字符,如果已到达流的末尾,则返回 -1 */
while((i=(fo.read()))!=-1){
//输出到控制台,(char)i 是把i转换成字符型
System.out.print((char)i);
}
//关闭流 注意顺序
fo.close();fis.close();
}
}
运行结果
注意 第二次是在第一次的基础上进行的 就是 true的作用
如果没有true结果是