写数据:
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class Test11 { public static void main(String[] args) throws IOException { File f = new File("d:" + File.separator+"test.txt"); OutputStream out=new FileOutputStream(f);//如果文件不存在会自动创建 String str="Hello World"; byte[] b=str.getBytes(); out.write(b);//因为是字节流,所以要转化成字节数组进行输出 out.close(); } }
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class Test11 { public static void main(String[] args) throws IOException { File f = new File("d:" + File.separator+"test.txt"); OutputStream out=new FileOutputStream(f);//如果文件不存在会自动创建 String str="Hello World"; byte[] b=str.getBytes(); for(int i=0;i out.write(b[i]); } out.close(); } }
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class Test11 { public static void main(String[] args) throws IOException { File f = new File("d:" + File.separator+"test.txt"); OutputStream out=new FileOutputStream(f,true);//追加内容 String str="\r\nHello World"; byte[] b=str.getBytes(); for(int i=0;i out.write(b[i]); } out.close(); } }文件中换行为:\r\n
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class Test12 { public static void main(String[] args) throws IOException { File f = new File("d:" + File.separator+"test.txt"); InputStream in=new FileInputStream(f); byte[] b=new byte[1024]; int len=in.read(b); in.close(); System.out.println(new String(b,0,len)); } }但以上方法是有问题的,用不用开辟这么大的一个字节数组,明显是浪费嘛,我们可以根据文件的大小来定义字节数组的大小,File类中的方法:public long length()
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class Test13 { public static void main(String[] args) throws IOException { File f = new File("d:" + File.separator+"test.txt"); InputStream in=new FileInputStream(f); byte[] b=new byte[(int) f.length()]; in.read(b); in.close(); System.out.println(new String(b)); } }我们换种方式,一个字节一个字节读入~
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class Test14 { public static void main(String[] args) throws IOException { File f = new File("d:" + File.separator+"test.txt"); InputStream in=new FileInputStream(f); byte[] b=new byte[(int) f.length()]; for(int i=0;i b[i]=(byte) in.read(); } in.close(); System.out.println(new String(b)); } }但以上情况只适合知道输入文件的大小,不知道的话用如下方法:
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class Test15 { public static void main(String[] args) throws IOException { File f = new File("d:" + File.separator+"test.txt"); InputStream in=new FileInputStream(f); byte[] b=new byte[1024]; int temp=0; int len=0; while((temp=in.read())!=-1){//-1为文件读完的标志 b[len]=(byte) temp; len++; } in.close(); System.out.println(new String(b,0,len)); }字符流
import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; public class Test16 { public static void main(String[] args) throws IOException { File f = new File("d:" + File.separator+"test.txt"); Writer out=new FileWriter(f); String str="Hello World"; out.write(str); out.close(); } }在默认情况下再次输出会覆盖,追加的方法也是在构造函数上加上追加标记
import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; public class Test17 { public static void main(String[] args) throws IOException { File f = new File("d:" + File.separator+"test.txt"); Writer out=new FileWriter(f,true);//追加 String str="\r\nHello World"; out.write(str); out.close(); } }
import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.Reader; public class Test18 { public static void main(String[] args) throws IOException { File f = new File("d:" + File.separator+"test.txt"); Reader input=new FileReader(f); char[] c=new char[1024]; int len=input.read(c); input.close(); System.out.println(new String(c,0,len)); } }也可以用循环方式,判断是否读到底:
import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.Reader; public class Test19 { public static void main(String[] args) throws IOException { File f = new File("d:" + File.separator+"test.txt"); Reader input=new FileReader(f); char[] c=new char[1024]; int temp=0; int len=0; while((temp=input.read())!=-1){ c[len]=(char) temp; len++; } input.close(); System.out.println(new String(c,0,len)); } }