在编程过程中,会有一些文件流的应用
1.读取文件将文件内容打印
import java.io.*;
public class wenjialianxi {
/**
* @param args
* 读取文件将文件内容打印
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int b;
byte tom[]=new byte[18];
try{
File f=new File("F://game/game1.txt");
FileInputStream in=new FileInputStream(f);
while((b=in.read(tom,0,18))!=-1){
String s=new String(tom,0,b);
System.out.print(s);
}
in.close();
}catch(IOException e){
System.out.println("File read Error"+e);
}
}
}
2.列出当前所在程序含有java的目录
import java.io.*;
public class wenjianlianxi1 {
/**
* @param args
* File类
* 列出当前所在程序含有java的目录
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File dir=new File(".");
FileAccept fileAccept=new FileAccept();
fileAccept.setExtendName("java");
String fileName[]=dir.list(fileAccept);
for(String name:fileName){
System.out.println(name);
}
}
}
class FileAccept implements FilenameFilter{
private String extendName;
public void setExtendName(String s){
extendName="."+s;
}
public boolean accept(File dir,String name){
return name.endsWith(extendName);
}
}
3.
import java.io.*;
public class wenjianlianxi2 {
/**
* @param args
* * * 写入文件“Happy New Year”
* 写入文件“新年快乐”
* 读取文件字节
* 将文件内容打印在控制台
* */
public static void main(String[] args) {
// TODO Auto-generated method stub
byte []a="新年快乐".getBytes();
byte []b="Happy new year".getBytes();
File file=new File("F://game/Dest.txt");
try{
OutputStream out=new FileOutputStream(file);
System.out.println(file.getName()+"的大小:"+file.length()+"字节");
out.write(a);
out.close();
out=new FileOutputStream(file,true);
System.out.println(file.getName()+"的大小"+file.length()+"字节");
out.write(b,0,b.length);
out.close();
FileReader fr=new FileReader(file);
char[] c=new char[100];
int len=0;
while((len=fr.read(c))!=-1){
System.out.println(new String(c,0,len));
}
fr.close();
}catch(IOException e){
System.out.println("Error"+e);
}
}
}
4.
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class wenjianlianxi3 {
/**
* @param args
* 将几个java数据类型写入到一个文件中,然后读出来
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File file=new File("F://game/Dest.txt");
try{
FileOutputStream fos=new FileOutputStream(file);
DataOutputStream outData=new DataOutputStream(fos);
outData.writeInt(100);
}
catch(IOException e){
try {
FileInputStream fis=new FileInputStream(file);
DataInputStream inData=new DataInputStream(fis);
System.out.println(inData.readInt());
char c;
while((c=inData.readChar())!='\0'){
System.out.print(c);
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
5.
import java.io.*;
public class wenjianlianxi4 {
/**
* @param args
* 缓冲流练习
* 使用字符串按行输入文件,然后使用BufferedReader流按行读取文件
* 天气预报
* 苏州晴
* 上海多云,有小雨
* 南京晴,有时多云
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File file=new File("F://game/Dest1.txt");
String content[]={"天气预报:","苏州晴","上海多云,有小雨","南京晴,有时多云"};
try{
FileWriter outOne=new FileWriter(file);
BufferedWriter outTwo=new BufferedWriter(outOne);
for(String str:content){
outTwo.write(str);
outTwo.newLine();
}
outTwo.close();
outOne.close();
FileReader inTwo=new FileReader(file);
BufferedReader in=new BufferedReader(inTwo);
String s=null;
while((s=in.readLine())!=null){
System.out.println(s);
}
inTwo.close();
in.close();
}catch(IOException e){
System.out.println(e);
}
}
}
6.
import java.io.*;
public class wenjianliu5 {
/**
* @param args
* 用随机流把几个int型整数写入一个名为tom文件中,按相反的顺序读出。
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
RandomAccessFile inAndOut=null;
int data[]={1,2,3,4,5,6,7,8,9,10,11,12};
try{
inAndOut=new RandomAccessFile("F://game/tom.txt","rw");
for(int i=0;i<data.length;i++){
inAndOut.writeInt(data[i]);
}
for(long i=data.length-1;i>=0;i--){
inAndOut.seek(i*4);
System.out.print(","+inAndOut.readInt());
}
inAndOut.close();
}
catch(IOException e){
System.out.println(e.getMessage());
}
}
}
7.
import java.io.*;
public class wenjianliu6 {
/**
* @param args
* 用随机流读取中文
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
RandomAccessFile in=null;
try{
in=new RandomAccessFile("F://game/tom.txt","rw");
long length=in.length();
long postion=0;
in.seek(postion);
while(postion<length){
String str=in.readLine();
byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
postion=in.getFilePointer();
System.out.println(str);
}
}
catch(IOException e){System.out.println(e.getMessage());}
}
}
8.
import java.io.*;
public class wenjianlianxi7 {
/**
* @param args对象流练习
* 获取一个Student对象,内含学生身高,姓名
* 打印到文件里People.txt
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
student5 stu=new student5();
stu.setName("韩帅哥");
stu.setHeight(1.83);
File file=new File("F://game/People.txt");
try{
FileOutputStream fileOut=new FileOutputStream(file);
ObjectOutputStream objout=new ObjectOutputStream(fileOut);
objout.writeObject(stu);
objout.close();
FileInputStream filein=new FileInputStream(file);
ObjectInputStream objin=new ObjectInputStream(filein);
student5 li=(student5)objin.readObject();
li.setName("李娇娇");
objin.close();
li.setHeight(1.68);
System.out.println(stu.name+"身高是:"+stu.height);
System.out.println(li.name+"身高是:"+li.height);
}
catch(ClassNotFoundException event){
System.out.println("不能读出对象");
}
catch(IOException e){
System.out.println(e);
}
}
}
class student5 implements Serializable{//实现接口序列化对象
String name=null;
double height;
public void setName(String name){
this.name=name;
}
public void setHeight(double height){
this.height=height;
}
}
9.
import java.io.*;
public class wenjianlianxi8 {
/**
* @param args
* 读取文件F://game/tom.txt
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File file=new File("F://game/tom.txt");
try{
FileInputStream r=new FileInputStream(file);
int count=0;
byte[] b=new byte[100];
while((count=r.read(b))!=-1){
String s=new String(b,0,count);
System.out.println(s);
}
r.close();
}
catch(IOException e){System.out.println(e.getMessage());}
}
}
10.
public class wenjianliu9 {
/**
* @param args
* 把中国万岁写入到lianxi9.txt
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String content="中国万岁";
char[] c=content.toCharArray();
File file=new File("F://game/lianxi9.txt");
try{
FileWriter w=new FileWriter(file);
w.write(c);
w.close();
FileReader r=new FileReader(file);
int count=0;
char[] b=new char[100];
while((count=r.read(b))!=-1){
String q=new String(b,0,count);
System.out.println(q);
}
r.close();
}
catch(IOException e){
System.out.println(e);
}
}
}