IO流技术主要是解决数据存储到硬盘的操作,
一种叫做写到硬盘上 : output
一种从硬盘读取::input
IO流就是操作数据的两种方式:
在我们读写数据的时候,程序是第一人称,所以写数据到硬盘,output, 读数据进来input。
输入流,InputStream == >FileInputStream
package com.xingxue.io1;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* 在E盘下 创建文件路径如下 E:/file/src/info.txt;
* @author Administrator
*/
public class TestIo {
public static void main(String[] args) {
//文件输入流
String num = "0";
try {
// FileInputStream fis = new FileInputStream("E:/info.txt");
File file = new File("E:/info.txt");
FileInputStream fis = new FileInputStream(file);
byte b[] = null;
try {
System.out.println(fis.available());
b = new byte[fis.available()];
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
fis.read(b);
String s = new String(b);
System.out.println(s);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
文件夹以及文件的创建类: File
package com.xingxue.io1;
import java.io.File;
import java.io.IOException;
public class TestFile {
public static void main(String[] args) {
//创建文件夹
File file = new File("E:/file/src");
file.mkdirs();
//创建文件
File file2 = new File("e:/file/src/info.txt");
try {
file2.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
此处注意,不能一步到位,必须先创建文件夹,在创建文件
输出流
java对象流,存取对象:
ObjectInputStream、FileOutputStream。 存储的是java的对象形式的数据,前提是该对象的类必须被序列化
public class Map implements Runnable, Serializable{
}
字符串流:
java字符流是Reader、Writer、通过我们查询API发现,该字符串流是无法直接获取硬盘文件的,需要借助我们的字节输入流和字节输出流来进行文件获取,所以代码:
try {
//利用字节流关联文件
InputStream is = new FileInputStream("e:/a.txt");
//将字节流套入我们基础字符流
InputStreamReader isr = new InputStreamReader(is);
//将基础字符流套入高级字符流
BufferedReader br = new BufferedReader(isr);
System.out.println(br.readLine());
} catch (Exception e) {
// TODO: handle exception
}
try {
OutputStream os = new FileOutputStream("e:/a.txt",true);
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
bw.write("张三你好");
bw.close();
osw.close();
os.close();
} catch (Exception e) {
// TODO: handle exception
}