Java习题_chp13练习题_9题_10题_0325_IO流作业

9.(FileInputStream 和FileOutputStream) 利用FileInputStream 和FileOutputStream,完成下面的要求:

1)用FileOutputStream 在当前目录下创建一个文件“test.txt”,并向文件输出“Hello World”,如果文件已存在,则在原有文件内容后面追加。

2)用FileInputStream 读入test.txt 文件,并在控制台上打印出test.txt 中的内容。

3)要求用try-catch-finally 处理异常,并且关闭流应放在finally 块中。

package chp13;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Work9 {
	public static void main(String[] args) {
		String s = "Hello Word\n";
		byte[] bytes = s.getBytes();
		
		OutputStream out = null;
		InputStream in =null;
		try {
			
			out = new FileOutputStream("test.txt",true);//追加内容
			out.write(bytes);//向文件输出
			
			in = new FileInputStream("test.txt");
			int length = in.available();//获取字节大小
			byte[] r = new byte[length];//存储每次读取的数据
			in.read(r);
			
			System.out.println(new String(r));//读取,将字节数组转换字符输出
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
				try {
					//关闭流
					if(out!=null)
						out.close();
					if(in!= null)
						in.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		}
	}
}

10.(Data 流)利用Data 流,完成下面操作:

1)判断当前目录下是否存在一个“test.dat”的文件,如果该文件不存在,则往该文件中写入一个long 类型的数值:10000L

2)如果该文件存在,则从该文件中读出数值,并把该数值加1 之后,再存回文件中。

package chp13;

import java.io.DataInput;
import java.io.DataInputStream;
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Work10 {
	public static void main(String[] args) {
		File file = new File("Test.dat");
		if(!file.exists()){//如果文件不存在
			write(file,10000L);
			
		}else{//存在就读取再+1
			long num = read(file);
			write(file, ++num);
		}
	}
	
	public static void write(File file,long num) {
		//创建一个字节输出流
		OutputStream os=null;
		DataOutput out =null;
		try {
			os = new FileOutputStream(file);
			out = new DataOutputStream(os);
			//输出数据
			out.writeLong(num);
			System.out.println("写入成功");
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				os.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	public static long read(File file) {
		InputStream in = null;
		DataInput din = null;
		try {
			in = new FileInputStream(file);
			din = new DataInputStream(in);
			//读取数据
			long readLong = din.readLong();
			System.out.println(readLong);
			return readLong;
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				in.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return 0;
	}
}

思考题、(File)

查询个人电脑D盘(没有d盘查自己有的盘)下所有文件,将文件名字进行输出(记住所有文件,包含子文件夹中的所有文件都要输出)

package sikao;

import java.io.File;

public class WorkReadD {
	public static void main(String[] args) {
		File file = new File("D:");
		toshow(file);
	}
	public static void toshow(File file) {
		if (file.exists()) {//文件是否存在
			File[] filein = file.listFiles();
			if(filein!=null){//判断目录是否为空
				for (File file2 : filein) {
					if(file2.isDirectory())//是否为目录
						toshow(file2);
					else
						System.out.println(file2.getName()+"\t"+file2.getAbsolutePath());
				}
			}
		}else{
			System.out.println("文件不存在");
		}
	}
}

猜你喜欢

转载自www.cnblogs.com/shellxx/p/12624573.html