package common;

import java.io.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import entity.Commodity; public class CommodityFile {
public List<Commodity> read(){
List<Commodity> commodities=new ArrayList<>();
File file=new File("E:/commodities1.txt");
FileInputStream fis=null;
ObjectInputStream ois=null;
//BufferedReader br=null;
//InputStreamReader isr=null;
try {
file.createNewFile();
fis=new FileInputStream(file);
ois=new ObjectInputStream(fis);
commodities=(List<Commodity>)ois.readObject();
/*isr=new InputStreamReader(fis,"utf-8");
br=new BufferedReader(isr);
String s;
while ((s=br.readLine())!=null){
Commodity commoditie=new Commodity();
String[] s1=s.split(" ");
commoditie.setName(s1[0]);
commoditie.setPrice(new BigDecimal(s1[1]));
commoditie.setDetial(s1[2]);
commodities.add(commoditie);
}*/
}catch (Exception e){
e.printStackTrace();
}
finally {
try {
/*if(br!=null){
br.close();
}if(isr!=null){
isr.close();
}*/
if(ois!=null){
ois.close();
}
if(fis!=null){
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
} }
return commodities;
}
public void write(List<Commodity>commodities){
/*StringBuffer sb=new StringBuffer();
for (Commodity c:commodities){
sb.append(c.getName()+" "+c.getPrice()+" "+c.getDetial()+"\n");
}*/
File file=new File("E:/commodities1.txt");
FileOutputStream fos=null;
ObjectOutputStream oos=null;
//OutputStreamWriter osw=null;
//BufferedWriter bw=null;
try {
file.createNewFile();
fos=new FileOutputStream(file);
oos=new ObjectOutputStream(fos);
oos.writeObject(commodities);
/*osw=new OutputStreamWriter(fos,"utf-8");
bw=new BufferedWriter(osw);
bw.write(sb.toString());*/
} catch (Exception e) {
e.printStackTrace();
}finally {
/*if(bw!=null){
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(osw!=null){
try {
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
}*/
if(oos!=null){
try {
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

java文件流操作的更多相关文章

  1. Java 文件流操作.

    一.概念 在Java中,文件的输入和输出是通过流(Stream)来实现的.一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是 Internet 上的某个 URL.对 ...

  2. Java IO流操作汇总: inputStream 和 outputStream【转】

    我们在进行Android java 开发的时候,经常会遇到各种IO流操作.IO流操作一般分为两类:字符流和字节流.以“Reader”结尾都是字符流,操作的都是字符型的数据:以“Stream”结尾的都是 ...

  3. java字符流操作flush()方法及其注意事项

    java字符流操作flush()方法及其注意事项   flush()方法介绍 查阅文档可以发现,IO流中每一个类都实现了Closeable接口,它们进行资源操作之后都需要执行close()方法将流关闭 ...

  4. delphi 基础之三 文件流操作

    文件流操作 Delphi操作流文件:什么是流?流,简单来说就是建立在面向对象基础上的一种抽象的处理数据的工具.在流中,定义了一些处理数据的基本操作,如读取数据,写入数据等,程序员是对流进行所有操作的, ...

  5. (C/C++学习)2.C语言中文件流操作基本函数总结

    函数所在头文件:stdio.h 说明:前半部分主要为对各个文件流操作函数的例举,后半部分着重于上机运行分析.文中部分引用自王桂林老师的C/C++课件. 1.FIELE *fopen(const cha ...

  6. 全面吃透JAVA Stream流操作,让代码更加的优雅

    全面吃透JAVA Stream流操作,让代码更加的优雅 在JAVA中,涉及到对数组.Collection等集合类中的元素进行操作的时候,通常会通过循环的方式进行逐个处理,或者使用Stream的方式进行 ...

  7. java 文件类操作(转载)

    11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...

  8. java文件读写操作

    Java IO系统里读写文件使用Reader和Writer两个抽象类,Reader中read()和close()方法都是抽象方法.Writer中 write(),flush()和close()方法为抽 ...

  9. java文件读写操作类

    借鉴了项目以前的文件写入功能,实现了对文件读写操作的封装 仅仅需要在读写方法传入路径即可(可以是绝对或相对路径) 以后使用时,可以在此基础上改进,比如: 写操作: 1,对java GUI中文本框中的内 ...

随机推荐

  1. FreeRADIUS 、DaloRADIUS 搭建记录

    一.  安装环境 系统环境:centos6.5 IP:192.168.30.242 hostname:vpn.org 软件:PPTP.LAMP均已安装.(请确保这些正常安装,并能使用). 二.  软件 ...

  2. DataSnap 连接池 DSServer1Disconnect

    DataSnap Server DSServer1Disconnect 这个函数什么时候执行? void __fastcall TServerContainer1::DSServer1Disconne ...

  3. nginx启动、重启、重新加载配置文件和平滑升级

    Nginx有一个主进程和几个工作进程,主进程的主要作用就是读取.评估配置文件和管理工作进程,工作进程对请求做实际处理.工作进程的数量是在配置文件中配置的,一般设置为cpu的核心数*线程数. nginx ...

  4. shell编程——变量子串的常用操作

    ${#字符串} 返回字符串的长度 [root@localhost ~]# a=length [root@localhost ~]# echo ${#a} 6 ${字符串:位置x} 从位置x开始往后截取 ...

  5. sax解析xml文件,封装到对象中

    创建User.java类 public class User { private String id; private String name; private String age; private ...

  6. go_常量与枚举

    package main import ( "fmt" "math" ) //常量的数值可以作为各种类型使用 func consts(){ const file ...

  7. freemaker 课程

    品优购电商系统开发 第12章 网页静态化解决方案-Freemarker 传智播客.黑马程序员 1.网页静态化技术Freemarker 1.1为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运 ...

  8. fastdfs 上传和下载 有用

    一.FastDFS解决什么样的问题 1.存储空间可扩展. 2.提供一个统一的访问方式. 使用FastDFS,分布式文件系统.存储空间可以横向扩展,可以实现服务器的高可用.支持每个节点有备份机. 二.什 ...

  9. Openssl smime命令

    一.简介 S/MIME工具,用于处理S/MIME邮件,它能加密.解密.签名和验证S/MIME消息 二.语法 openssl smime [-encrypt] [-decrypt] [-sign] [- ...

  10. Ext.data.association.hasMany一对多模型使用示例

    来自<sencha touch权威指南>第11章,323页开始 --------------------------------------------------- index.html ...