Java读取文件存储到mysql
写了一批Lua脚本,要放到数据库里面,调用的时候进行计算,由于有太多lua脚本,就写了个程序来录入。
下面主要分三个部分:
- public static String readToString(String fileName)
- public static void wirteToMYSQL(String string) throws FileNotFoundException
- public static List<String> getFileList(String strPath)
readToString,用作从lua脚本,也就是文件中读取script出来,传送一个参数就是文件夹的绝对路径。
writeToMYSQL主要进行数据库写的函数,main函数里面也就调用了这一个函数,也就是说这个函数调用了另外两个函数。
getFileList,对指定路径的文件夹进行遍历,找遍所有的lua脚本,并将lua脚本的绝对路径处理(加上\,因为java处理绝对路径需要加上)放到一个list里面。
writeToMYSQL本来是打算传个参数作为路径进去的,想想就用一次,就直接在里面写死了绝对路径。
上完整代码:
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.UnsupportedEncodingException;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.LinkedList;
- import java.util.List;
- import com.mysql.jdbc.PreparedStatement;
- public class Test {
- public static void main(String[] args) throws IOException {
- wirteToMYSQL("");
- }
- public static String readToString(String fileName) {
- String encoding = "UTF-8";
- File file = new File(fileName);
- Long filelength = file.length();
- byte[] filecontent = new byte[filelength.intValue()];
- try {
- FileInputStream in = new FileInputStream(file);
- in.read(filecontent);
- in.close();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- try {
- return new String(filecontent, encoding);
- } catch (UnsupportedEncodingException e) {
- System.err.println("The OS does not support " + encoding);
- e.printStackTrace();
- return null;
- }
- }
- public static void wirteToMYSQL(String string) throws FileNotFoundException {
- final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
- final String DB_URL = "jdbc:mysql://192.168.**.***:3306/cqc";
- final String USER = "***";
- final String PASS = "*****";
- Connection conn = null;
- Statement stmt = null;
- List<String> id = getFileList("C:\\Users\\yefeifan\\Desktop\\lua");
- List<String> fileList = new LinkedList<>();
- for (int i = 0; i < id.size(); i++) {
- fileList.add(id.get(i));
- }
- // 得到 文件名list也就是id list C001002000_001
- for (int i = 0; i < id.size(); i++) {
- id.set(i, id.get(i).substring(35, 49));
- }
- // 得到script内容
- List<String> scripts = new LinkedList<>();
- for (int i = 0; i < fileList.size(); i++) {
- // System.out.println(readToString(fileList.get(i)));
- scripts.add(readToString(fileList.get(i)));
- }
- try {
- Class.forName("com.mysql.jdbc.Driver");
- System.out.println("连接数据库...");
- conn = DriverManager.getConnection(DB_URL, USER, PASS);
- PreparedStatement pstmt;
- // 执行查询
- for (int i = 0; i < scripts.size(); i++) {
- String sql = "update capability set function_script=' " + scripts.get(i) + "' where id='" + id.get(i)
- + "'";
- pstmt = (PreparedStatement) conn.prepareStatement(sql);
- pstmt.executeUpdate();
- pstmt.close();
- }
- conn.close();
- } catch (SQLException se) {
- // 处理 JDBC 错误
- se.printStackTrace();
- } catch (Exception e) {
- // 处理 Class.forName 错误
- e.printStackTrace();
- } finally {
- // 关闭资源
- try {
- if (stmt != null)
- stmt.close();
- } catch (SQLException se2) {
- } // 什么都不做
- try {
- if (conn != null)
- conn.close();
- } catch (SQLException se) {
- se.printStackTrace();
- }
- }
- }
- public static List<String> getFileList(String strPath) {
- List<String> filelist = new LinkedList<String>();
- File dir = new File(strPath);
- File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组
- if (files != null) {
- for (int i = 0; i < files.length; i++) {
- String fileName = files[i].getName();
- if (files[i].isDirectory()) { // 判断是文件还是文件夹
- return null; // 获取文件绝对路径
- } else if (fileName.endsWith("lua")) { // 判断文件名是否以.avi结尾
- StringBuffer strFileName = new StringBuffer(files[i].getAbsolutePath());
- strFileName.insert(2, '\\');
- strFileName.insert(9, '\\');
- strFileName.insert(19, '\\');
- strFileName.insert(28, '\\');
- strFileName.insert(33, '\\');
- filelist.add(strFileName.toString());
- } else {
- continue;
- }
- }
- }
- return filelist;
- }
- }
Java读取文件存储到mysql的更多相关文章
- [Java]读取文件方法大全(转)
[Java]读取文件方法大全 1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile { /** ...
- Java 读取文件的内容
Java 读取文件的内容 1) CLASS_NAME: 换成自己真实的类名 2) /page/test.json: 换成自己真实的page 3) FileUtils: 来自于org.apache.co ...
- Java读取文件-BufferedReader/FileReader/InputStreamReader/FileInputStream的关系和区别
一.Java读取和存储文件数据流 Java读取文件,实际是将文件中的字节流转换成字符流输出到屏幕的过程 这里面涉及到两个类:InputStreamReader和OutputStreamWriter ...
- java读取文件的基本操作
import java.io.FileInputStream; /** * 使用FileInputStream读取文件 */ public class FileRead { /** * @param ...
- 使用java读取文件夹中文件的行数
使用java统计某文件夹下所有文件的行数 经理突然交代一个任务:要求统计某个文件夹下所有文件的行数.在网上查了一个多小时没有解决.后来心里不爽就决定自己写一个java类用来统计文件的行数,于是花了两个 ...
- Java读取文件的几种方式
package com.mesopotamia.test; import java.io.BufferedReader; import java.io.ByteArrayInputStream; im ...
- java 读取文件——按照行取出(使用BufferedReader和一次将数据保存到内存两种实现方式)
1.实现目标 读取文件,将文件中的数据一行行的取出. 2.代码实现 1).方式1: 通过BufferedReader的readLine()方法. /** * 功能:Java读取txt文件的内容 步骤: ...
- Java 读取文件到字符串
Java的io操作比较复杂 package cn.outofmemory.util; import java.io.BufferedReader; import java.io.FileInputSt ...
- java读取文件夹下所有文件并替换文件每一行中指定的字符串
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...
随机推荐
- Java和Flex整合报错(三)
1.错误描述 信息: Initializing Spring FrameworkServlet 'mvc' 11-13 23:43:42 INFO [localhost-startStop-1] or ...
- Web.config中设置启用webservice远程调试访问
在.NET 中已经默认将webservice的远程调试功能关闭,有的时候我们需要远程调试程序的时候,就需要打开此功能我们只需在webservice的项目的中添web.config的<system ...
- LinearRegression 线性回归
一.预测 先来看看这样一个场景: 假如你手头有一套房子要出售,你咨询了房产中介.中介跟你要了一系列的数据,例如房子面积.位置.楼层.年限等,然后进行一系列计算后,给出了建议的定价. 房产中介是如何帮你 ...
- 试着讲清楚:js代码运行机制
一. js运行机制 js执行引擎 经常看文章的说到js是带线程的,其实这个说法非常的模糊,准确的是js执行引擎是单线程的,js执行引擎就是js代码的执行器,有了这个概念就可以下来说说js是如何运行的了 ...
- 【UOJ207】共价大爷游长沙(Link-Cut Tree,随机化)
[UOJ207]共价大爷游长沙(Link-Cut Tree,随机化) 题面 UOJ 题解 这题太神了 \(\%\%\%myy\) 看到动态的维护边很容易的想到了\(LCT\) 然后能否堵住一条路 我们 ...
- Delphi的RzDbgrid改变某行的背景色
本想改变符合条件的行的背景色,试了DbgridEh和原生的Dbgrid直接在DrawColumnCell事件中写重绘代码就好了,But在RzDbgrid就不起效果,查了好一会,百度了一大堆,都是千篇一 ...
- 解决Android Studio 3.0导入module依赖后unable to merge index
解决Android Studio 3.0导入module依赖后unable to merge index 项目需要使用im, 在项目里导入了腾讯im的几个module依赖, 项目无法编译, 报错una ...
- Redis学习日记-01
Redis是什么东东? Redis是用C语言开发的Key-Value数据库,说是数据库,其实他是NoSql(非关系型数据库). 这里顺便说一下Sql(关系型数据库,如MySql,Oracle等)和No ...
- Qt下载地址
上Qt官网http://www.qt.io/download/想下载Qt,速度很慢,在这里记录下在Qt官网看到的镜像下载地址: 1. 所有Qt版本下载地址: http://download.qt.io ...
- Unity中List的随机排序(乱序)
为什么要给List排序做一个Unity限定条件呢 首先,是C#中的List泛型,若是Java,直接调用Collection.shuffle()就OK了 而Unity的C#版本较低,不能使用Random ...