数据加载中……
Java 文件操作
2008年5月1日   Edited By DingDangXiaoMa
Java 对文件的操作有很多种方法,类也很多,这里举出最简单的测试例子,读取文件输入输出数据库操作。
以下是部分源代码:
package com.zh.wsdy.dao;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.zh.wsdy.model.AjPrgWsmb;
import com.zh.wsdy.model.BaseHibernateDAO;
import com.zh.wsdy.model.Wtest;

//测试读写文件及读文件到数据库中。。。
public class TestDAO extends BaseHibernateDAO {
    
private static final int BUFFER_SIZE = 16 * 1024;

    
public TestDAO() {

    }

    
/**
     * 测试程序,把读取一个文件,把个文件的内容,以字节的形式保存到数据中去。
     
*/
    
public void saveFileStreamToDataBase(String id) {
        
// 先进进行数据库方面的操作。连接及新建类。
        Session session = getSession();
        Wtest test 
= new Wtest(id);

        
// 以下是文件的定义。
        File file = new File("c:" + File.separator + "response.txt");
        
// File file = new File("c:" + File.separator + "a.java");
        
// File file = new File("c:" + File.separator + "word.doc");

        
try {
            FileInputStream inputStream 
= new FileInputStream(file);
            BufferedInputStream bufferedInputStream 
= new BufferedInputStream(
                    inputStream);
            
byte[] buffer = new byte[BUFFER_SIZE];
            
while (bufferedInputStream.read(buffer) > 0) {
                test.setWcontent(buffer);
            }
            Transaction trac 
= session.beginTransaction();
            trac.begin();
            session.save(test);
            System.out.println(
"插入一条数据成功.");
            trac.commit();
        } 
catch (Exception e) {
            e.printStackTrace();
        }
    }

    
/**
     * 传递主键参数,从数据库中读取数据。
     * 
     * 
@param id
     
*/
    
public void ReadDataBaseStreamToString(String id) {
        Session session 
= getSession();
        Query query 
= session.createQuery("from AjPrgZdms m where m.FId =:id");
        
// Query query = session.createQuery("from Wtest t where t.wid =:id ");
        query.setString("id", id);
        AjPrgWsmb test 
= (AjPrgWsmb) query.list().get(0);
        
// Wtest test = (Wtest)query.list().get(0);
        
// byte [] content = test.getWcontent();
        byte[] content = test.getFWsys();
        System.out.print(content); 
// 在这里直接输出字节,没有进行字符串的转换。
        
// String contentString = new String(content); //进行转换,把字节转换成String
        
// System.out.print("the String is : "+contentString);
    }

    
/**
     * 从数据库读取byte型数据,写入当地文件,看一下,写入与原始文件的差别。
     * 
     * 
@param id
     
*/
    
public void writeFileFromDataBase(String id) {
        Session session 
= getSession();
        Query query 
= session.createQuery("from Wtest t  where t.wid =:id");
        query.setString(
"id", id);
        Wtest test 
= (Wtest) query.list().get(0);
        
byte[] content = test.getWcontent();
        
try {
            BufferedOutputStream out 
= new BufferedOutputStream(
                    
new FileOutputStream("c:\\word2.doc"));
            out.write(content);
            System.out.println(
"从数据库中读取数据,并写入相应的文件中。。。");
        } 
catch (Exception e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }
        
// System.out.print(content); //在这里直接输出字节,没有进行字符串的转换。
    }

    
/**
     * 这个测试的方法是,从AjPrgWsmb表中,读取数据,写入到相应的文件中去。
     * 
     * 
@param id
     
*/
    
public void writeFile(String id) {
        Session session 
= getSession();
        Query query 
= session.createQuery("from AjPrgWsmb m where m.FId =:id");
        
// Query query = session.createQuery("from Wtest t where t.wid =:id ");
        query.setString("id", id);
        AjPrgWsmb test 
= (AjPrgWsmb) query.list().get(0);
        
// Wtest test = (Wtest)query.list().get(0);
        
// byte [] content = test.getWcontent();
        
//byte[] content = test.getFWsys();
        byte[] content = test.getFContent();
        
if(content!=null){
        
try {
            BufferedOutputStream out 
= new BufferedOutputStream(
                    
new FileOutputStream("c:\\word2.doc"));
            out.write(content);
            System.out.println(
"从数据库中读取数据,并写入相应的文件中。。。");
        } 
catch (Exception e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }
        }
else{
            System.out.println(
"这个文书模板样式为空值。。。。。");
        }
    }

    
/**
     * 
@param args
     
*/
    
public static void main(String[] args) {
        TestDAO test 
= new TestDAO();
        
// test.saveFileStreamToDataBase("txt"); // 保存一条数据到数据库中,主键为txt,word,java
        
// test.ReadDataBaseStreamToString("word");
        
// test.writeFileFromDataBase("0000000010");
        test.writeFile("0000000023");

    }

}
以上的例子很简单,是一些普通的文件的操盘。

posted on 2008-05-01 17:04 叮当小马 阅读(227) 评论(0)  编辑  收藏 所属分类: JSP/JAVA


只有注册用户登录后才能发表评论。


网站导航: