InputStream/OutinputStream
文件:
FileInputStream/FileInputStream
InputStream(输入流)
数据从文件到java代码中.
int read();//读取一个字节
int read(byte[]);//读取一串字节
long avaliable;//文件长度
FileInputStream(字节文件输入流)
new FileInputStrea(File);
new FileInputStream(“文件路径+文件名”)
OutputStream(输出流)
数据从java代码中,写到文件或者其他介质中,
void write(字节);//写入一个字节
void write(byte[]);//写入字节数组
FileOutputStream
new FileOutputStream(File);
new FileOutputStream(“文件路径+文件名”);
new FileOutputStream(“文件路径+文件名”,boolean);
注意:
a.boolean:表示是否向文件末尾追加,如果是true,表示
追加,false表示不追加(也就是覆盖),默认值为false
b.创建FileOutputStream实例时,
如果相应的文件并不存在,则会自动创建一个空的文件
package ioday01; import java.io.File; import java.io.IOException; public class Text { public static void main(String[] args) { //TODO Auto-generated method stub //读取a.txt文件,在哪个地方,\ File f = new File("文件路径"); // "\":表示转义 //"/":表示/ File f = new File("E:/a.txt"); //System.out.println(f); //文件是否存在 boolean flag = f.exists(); System.out.println(flag); //是否是文件 flag = f.isFile(); System.out.println(flag); //是否是目录 flag = f.isDirectory(); System.out.println(flag); //获取文件相对路径 String path = f.getPath(); System.out.println(path); //获取文件绝对路径 path = f.getAbsolutePath(); System.out.println(path); //获取名字 String name = f.getName(); System.out.println(name); //删除文件或者目录 flag = f.delete(); System.out.println(flag); //创建(检查异常,IOException,SOLException) try { flag = f.createNewFile(); System.out.println(flag); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(f.length()); //普通java项目,都是项目名为节点 File f = new File("src/ioday01/Text.java"); System.out.println(f.exists()); System.out.println(f.getPath()); System.out.println(f.getAbsolutePath()); } }
Reader/Writer(字符流)
//能够用文本编辑器打开的文件,不乱码就是字符文件
//用文本编辑器打开乱码的,就是字节文件
FileReader
int b = fr.read();//读取一个字符
int length = fr.read(char[]);//读取字符数组
package io.day02; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; public class TestReaderFile { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub File f = new File("src/a.txt"); InputStream is = new FileInputStream(f); int b; while((b = is.read()) != -1){ System.out.print((char)b); } } }
FileWriter
fw.write(char);//写一个字符
fw.write(char[])//写字符数组
package io.day02; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class TestWriterFile { public static void main(String[] args) throws Exception { int[] ary = {97,98,99,100,101}; File f = new File("src/a.txt"); OutputStream os = new FileOutputStream(f); for(int i :ary){ os.write(i); } os.close(); //复制文件a.txt的内容到b.txt File f1 = new File("src/b.txt"); boolean f2 = f1.exists(); System.out.println(f2); try { f2 = f1.createNewFile(); System.out.println(f2); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
BufferedReader(字符输入缓冲流)
BufferedReader br = new BufferedReader(new FileReader("文件路径"))
String str = br.readLine();//读取一个字符
BufferedWriter(字符输出缓冲流)
BufferedWriter bw = new BufferedWriter(new FileWriter("文件路径"))
bw.write(字符串)
DataInputStream/DataOutputStream
读写字符文件
BufferedReader br = new BufferedReader (new FileReader(文件));
BufferedWriter bw = new BufferedWriter(new FileWriter(文件,boolean));
读写字节文件 DataInputStream dis = new DataInputStream(new FileInputStream(文件));
DataOutputStream dos = new DataOutputStream(new FileOutputStrem(文件));
package io.day04; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class TestBuffer { public static void main(String[] args) throws Exception { // buReader(); buWriter(); } private static void buWriter() throws Exception { // TODO Auto-generated method stub BufferedWriter bw = new BufferedWriter(new FileWriter("src/a.txt")); bw.write("我是刘美猪"); //刷新缓存 // bw.flush(); //默认执行flush(),关闭管道. bw.close(); } private static void buReader() throws Exception { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new FileReader("src/c.txt")); //读取一行记录 // String str = br.readLine(); // str = br.readLine(); // System.out.println(str); String str; while((str = br.readLine())!=null){ System.out.println(str); } } }
读取整个字符文件
String str = null;
while((str=br.readLine())!= null){ System.out.println(str); }
读取整个字节文件
int b;
while((b=br.read())!= -1){ System.out.println(b); }