下面四个是有关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();
}
}