⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 materialimport.java

📁 物料管理 物料登记 批量登记:一次性导入多条物料 单条登记:只能录入一条物料信息 物料管理 更新: 删除: 查看: 物料导出 库管员可以将系统中登记的所有物料一次性导出来 Mat
💻 JAVA
字号:
package com.qrsx.storage.view;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.Reader;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.ArrayList;
import java.util.List;

import com.qrsx.storage.manager.MaterialManager;
import com.qrsx.storage.model.Material;

/**
 * @author Administrator
 *
 */
public class MaterialImport {

	private MaterialManager materialManager;
	private String filePath;
	
	/**
	 * 构造方法,初始化 materialManager
	 * @param mgr
	 */
	public MaterialImport( MaterialManager mgr, String filePath ){
		this.materialManager = mgr;
		this.filePath = filePath;
	}
	
	public void importMaterial() throws Exception{
		
		//读取文件内容
		StringBuffer content = readFile1();
		
		//解析文件内容
		List<Material> materials = parseFileToMaterial(content.toString());
		
		//导入数据库
		
		materialManager.addAll(materials);
		
	}
	
	/**
	 * 读取文件中的数据
	 * @param filePath
	 * @return
	 */
	
	private StringBuffer readFile( ) throws Exception {
		
		
		//实例化文件输入流
		FileInputStream in=null;
		in=new FileInputStream(filePath);
		//获取文件通道
		FileChannel fic=in.getChannel();
	
		//实例化缓冲区
		ByteBuffer buffer=ByteBuffer.allocate(1024);
		
		//实例化字符串缓冲区
		StringBuffer sb = new StringBuffer();
		//读取数据
		
		while(fic.read(buffer)!=-1){
			buffer.flip();
			String b=new String(buffer.array(),0,buffer.limit());
			sb.append(b);
			
			buffer.clear();
		}
		in.close();
		
		return sb;
	}
	/**
	 * 利用FileReader读取文件字符;
	 * @return
	 * @throws Exception
	 */
	private StringBuffer readFile1( ) throws Exception {
		FileReader fr =new FileReader(filePath);
		int c=0;
		
		//实例化字符串缓冲区
		StringBuffer sb = new StringBuffer();
		while((c=fr.read())!=-1){
			
			sb.append((char)c);
		}
		
		return sb;
	}

	/**
	 * 解析文件内容
	 * @param content
	 * @return
	 * @throws Exception
	 */
	private List<Material> parseFileToMaterial( String content ) throws Exception {
		String[] field=content.split("\n");
		List<Material> list = new ArrayList<Material>();
		
		
		
		for(int i=1;i<field.length;i++){
		
			String[] fields=field[i].split("\t~");	
			Material material=new Material();
			material.setId(Integer.valueOf(fields[0]));
			material.setName(fields[1]);
			material.setClient(fields[2]);
			material.setUnit(fields[3]);
			material.setPrice(Float.valueOf(fields[4]));
			material.setTotal(Float.valueOf(fields[5]));
			material.setNote(fields[6]);
			list.add(material);
		}
		
		
//		String rowContent = ".......";
//		String[] fields = rowContent.split("\t~");
		
		//... 解析内容
		
		return list;
	}
	public static void main(String[] args) throws Exception{
		MaterialManager mm=new MaterialManager();
		String file="E:\\java\\storage\\src\\Material.txt";
		MaterialImport mi=new MaterialImport(mm,file);
		mi.importMaterial();
		System.out.println("OK!");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -