5-1作业

5-1作业

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.channels.FileLockInterruptionException;

public class Test {

	public static void main(String[] args) {
		// 创建product对象
		Product one=new Product(123,"iPhone","telephone",4888.0f);
		Product two=new Product(234,"iPad","computer",5088.0f);
		Product three=new Product(345,"MacBook","computer",10688.0f);
		Product four=new Product(256,"iWatch","watch",4799.0f);
		String s="apple系列产品信息:\n"+one.toString()+"\n\n"+two.toString()+"\n\n"+three.toString()+"\n\n"+four.toString();
        //System.out.println(s);
		//创建文件Product
		File file=new File("Product.txt");
		try {
			file.createNewFile();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//对象输入
		try {
			FileReader fr=new FileReader("Product.txt");
			BufferedReader br=new BufferedReader(fr);
			FileWriter fw=new FileWriter("Product.txt");
			BufferedWriter bw=new BufferedWriter(fw);
			//将信息写入文件
			bw.write(s);;
			bw.flush();
			//读对象信息
			//System.out.println(br.readLine());
			String s1=br.readLine();
			while(s1!=null) {
				s1=br.readLine();
				if(s1!=null) {
					System.out.println(s1);
				}			    			
			}
			bw.flush();
			fw.flush();
			fr.close();
			br.close();
			fw.close();
			bw.close();
		} catch (FileLockInterruptionException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
我这样输入和输出String类型数据可以么


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕珊 2018-03-05 15:34:07

这个题目是序列化的问题,所以要定义一个类Product实现序列化接口Serializable,然后使用FileOutputStream结合ObjectOutpStream写入四个对象,再用FileInputStream结合ObjectInputStream读取对象,可以再看看例题。写入和读取都是四次。

祝学习愉快!

  • 提问者 慕九州9238872 #1
    1 只写了两次转换是因为老师在上一节课说过filewriter和filereader可以把字节字符转换变成两行代码。 2 我就在想为什么一定要传object对象,所以我这样写虽然同样可以得到这个结果,但是却不是序列化的步骤?
    2018-03-05 16:04:04
  • 好帮手慕珊 回复 提问者 慕九州9238872 #2
    你这样写不是不可以,只是这道题目设置的目的是为了练习对象的序列化与反序列化,所以希望通过对象的读取去完成
    2018-03-05 16:50:21
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师