下面四个是有关FileinputStream的知识 import java.io.FileInputStream; import java.io.IOException; //这里导入文件用的是绝对路径方法 public class MyFileistream1 { public static void main(String[] args) throws IOException { FileInputStream fileInputStream=null; //FileInputStream fileInputStream = new FileInputStream("D:\\test\\try.txt"); 这种方法导入路径也可以,\\代表转义 fileInputStream = new FileInputStream("D:/test/try.txt"); while(true){ int a=fileInputStream.read(); if( a==-1) break; System.out.println(a); } /* while(true){ System.out.println(fileInputStream.read()); if( fileInputStream.read()==-1) break; }*/ //我悟了,这个和上面是不同的,这个每循环一次读了两个字节 /*while(true){ int a=0; if( (a=fileInputStream.read())==-1) break; System.out.println(a); }*/ //这个和第一个循环是一样的 /* System.out.println( fileInputStream.read()); System.out.println( fileInputStream.read()); System.out.println( fileInputStream.read()); System.out.println( fileInputStream.read()); System.out.println( fileInputStream.read());*/ if(fileInputStream!=null){ fileInputStream.close(); } } }
import java.io.FileInputStream; import java.io.IOException; //这里介绍了相对路径的知识,它要从当前位置(idea默认当前位置就是工程的根)作为起点开始找 public class MyFileistream2 { public static void main(String[] args) throws IOException { FileInputStream fileInputStream=new FileInputStream("first/try5.txt"); // FileInputStream fileInputStream1=new FileInputStream("first/src/try1.txt"); // FileInputStream fileInputStream2=new FileInputStream("first/src/com/kuang/try2.txt"); //FileInputStream fileInputStream3=new FileInputStream("first/src/com/kuang/IO/try3.txt"); //这里用到了字节数组 byte[] count=new byte[4] ; int a=fileInputStream.read(count); //一次读取最多count.length个字节,返回的值是读取的字节数目 System.out.println(a); //System.out.println(new String(count)); //这是把字节数组全部转换为字符串 System.out.println(new String(count,0,a)); // 这里采用读取多少个字节转多少个出来的方法 a=fileInputStream.read(count); System.out.println(a); // System.out.println(new String(count,0,a)); //这是把字节数组全部转换为字符串,因为它剩下的三个为空,会被上次转的取代,结果错误 System.out.println(new String(count,0,a));//所以它这里采用读取多少个字节转多少个出来的方法 if(fileInputStream!=null) fileInputStream.close(); } }
import java.io.FileInputStream; import java.io.IOException; public class MyFileistream3 { public static void main(String[] args)throws IOException{ FileInputStream fileInputStream=new FileInputStream("first/try.txt"); byte[] b=new byte[4]; /* while(true) { int c = fileInputStream.read(b); if(c==-1) break; System.out.print(new String(b, 0, c)); } */ int c=0; while((c=fileInputStream.read(b))!=-1){ System.out.print(new String(b, 0, c)); } if(fileInputStream!=null) fileInputStream.close(); } }
import java.io.FileInputStream; import java.io.IOException; import java.net.URL; public class MyFileistream4 { public static void main(String[] args) throws IOException { FileInputStream fileInputStream=new FileInputStream("first/try5.txt"); System.out.println(fileInputStream.available()); //可以用来输出文件中剩余没有读取字节的数量 //fileInputStream.skip(3); //System.out.println(fileInputStream.read()); 这个skip方法可以跳过几个字节 byte[] a=new byte[7]; fileInputStream.read(a); //available()的好处就体现在这里,知道了这个文件含有多少字节, // 一次就给它读取转换出来了,但是这不能够适用于大文件,因为byte数组不能太大 System.out.println(new String(a)); //System.out.println(fileInputStream.read()); // System.out.println(fileInputStream.available()); //可以用来输出文件中剩余没有读取字节的数量 } } 这个是有关FileOutstream的知识
import java.io.*; public class MyFileostream1 { public static void main(String[] args) throws IOException { FileOutputStream fileOutputStream=new FileOutputStream("my.txt",true); //如果原来有文件,并且文件里面有东西,不加上这个true的话,则它先将文件清空再写入 //若加入了这个true则不会清空写入 //如果本来没有这个文件,那么它会自动创建文件 fileOutputStream.write(97); byte[] c={98,99,100}; //这里是全部写出 fileOutputStream.write(c); //这里是部分写出。写出b fileOutputStream.write(c,0,1); String d="我爱中国"; byte[] e=d.getBytes(); //这里是将字符串转换字符 fileOutputStream.write(e); fileOutputStream.flush(); if ((fileOutputStream!=null)) fileOutputStream.close(); } }
下面是有关FileReaderr的知识
import java.io.FileReader; import java.io.IOException; public class MyfileReader { public static void main(String[] args) throws IOException { FileReader fileReader=new FileReader("first//try5.txt"); //System.out.println(fileReader.read()); /* while(true){ int n; if ( (n=fileReader.read())==-1) break; System.out.println(n); }*/ char[] m=new char[4]; int p; while(true) { if((p=fileReader.read(m))==-1) break; System.out.println(new String(m,0,p)); //这里其实字符输出也是可行的,但是到了最后面的一个数组, // 因为数组没有读满文件就完了,这时去输出这个数组,为空的部分会被上次输出的数取代 } //这里是对char数组进行循环 /* char[] m=new char[4]; fileReader.read(m); for(char t: m) System.out.println(t);*/ if(fileReader!=null) fileReader.close(); } } 下面是有关Filewriter的知识
import java.io.FileWriter; import java.io.IOException; public class MyFileWriter { public static void main(String[] args) throws IOException { FileWriter fileWriter=new FileWriter("D:\\face.txt"); char[] m={'1','我','是','中'}; //字符只能是一个字母,一个汉字,一个数字或任何一个符号,只能是一个,为空也不行 fileWriter.write(m); fileWriter.write(m,0,2); fileWriter.write("\n"); //换行符 fileWriter.write("我是中国人"); fileWriter.flush(); if(fileWriter!=null) fileWriter.close(); } }
下面是有关用FileInputStream和Fileoutstream进行文件复制的知识
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class MyFileiostream { public static void main(String[] args) throws IOException { FileInputStream fileInputStream=new FileInputStream("D:\\wang.txt"); FileOutputStream fileOutputStream=new FileOutputStream("D:\\tan.txt"); byte[] c=new byte[1024*1024]; int n; if((n=fileInputStream.read(c))!=-1) fileOutputStream.write(c,0,n); fileOutputStream.flush(); if(fileInputStream!=null) fileInputStream.close(); if(fileOutputStream!=null) fileOutputStream.close(); } }
下面是有关用FileWriter和FileReader进行文件复制的知识
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class MyFileiostream { public static void main(String[] args) throws IOException { FileInputStream fileInputStream=new FileInputStream("D:\\wang.txt"); FileOutputStream fileOutputStream=new FileOutputStream("D:\\tan.txt"); byte[] c=new byte[1024*1024]; int n; if((n=fileInputStream.read(c))!=-1) fileOutputStream.write(c,0,n); fileOutputStream.flush(); if(fileInputStream!=null) fileInputStream.close(); if(fileOutputStream!=null) fileOutputStream.close(); } }