php 读写文件和数据库哪个快

php 读写文件和数据库哪个快,第1张

1、直接读文件相比数据库查询效率更胜一筹,而且文中还没算上连接和断开的时间。

2、一次读取的内容越大,直接读文件的优势会越明显(读文件时间都是小幅增长,这跟文件存储的连续性和簇大小等有关系),这个结果恰恰跟天缘预料的相反,说明MYSQL对更大文件读取可能又附加了某些 *** 作(两次时间增长了近30%),如果只是单纯的赋值转换应该是差异偏小才对。

3、写文件和INSERT几乎不用测试就可以推测出,数据库效率只会更差。

4、很小的配置文件如果不需要使用到数据库特性,更加适合放到独立文件里存取,无需单独创建数据表或记录,很大的文件比如图片、音乐等采用文件存储更为方便,只把路径或缩略图等索引信息放到数据库里更合理一些。

5、PHP上如果只是读文件,file_get_contents比fopen、fclose更有效率,不包括判断存在这个函数时间会少3秒左右。

6、fetch_row和fetch_object应该是从fetch_array转换而来的,我没看过PHP的源码,单从执行上就可以说明fetch_array效率更高,这跟网上的说法似乎相反。

不知道你要什么样的文本,文本中的内容是否是有格式的:

这里提供下思路,供参考:

1.文本文件,基本上式字符格式的了,可以用Reader  io流

2.如果是格式化的文本,可以按数据的长度读取,  readInt   readByte...

3.保存到数据库 当然用JDBC了,如果你读取出来封装成POJO了,也可以选择 OM框架

import java.io.BufferedReader

import java.io.FileInputStream

import java.io.IOException

import java.io.InputStreamReader

/**

 * 文件读取和写入数据库

 * @author  樊云升

 *

 */

public class FilesReader {

public FilesReader(){

}

/**

 * 读取文件内容

 * @param FILE

 * @return

 */

public String re_content(String FILE){

String content=""

 try{   

             BufferedReader bufRead=new BufferedReader(new InputStreamReader(new FileInputStream(FILE)))   

             String  str   

             while((str=bufRead.readLine())!=null){   

               content+=str+"\r\n"   

             }

 }catch(IOException ioe){

   ioe.printStackTrace()

 }

return  content

}

/**

 * 将特定字符写入数据库中(原来我写的是重写文件,你这里这里将content写入数据库就OK)

 * @param path

 * @return

 */

public boolean writeFile(String content){

try{

//数据库写入代码

                     }catch(Exception e){

  out.close()

  return false

 }

return true

}

public static void main(String[] args) {

String content=new FilesReader().re_content("D:\\AJAX.htm")

                new FilesReader().writeFile(content)

}

}

写Java程序时经常碰到要读如txt或写入txt文件的情况,但是由于要定义好多变量,经常记不住,每次都要查,特此整理一下,简单易用,方便好懂!

[java] view plain copy

package edu.thu.keyword.test  

  

import java.io.File  

import java.io.InputStreamReader  

import java.io.BufferedReader  

import java.io.BufferedWriter  

import java.io.FileInputStream  

import java.io.FileWriter  

  

public class cin_txt {  

    static void main(String args[]) {  

        try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw  

  

            /* 读入TXT文件 */  

            String pathname = "D:\\twitter\\13_9_6\\dataset\\en\\input.txt" // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径  

            File filename = new File(pathname) // 要读取以上路径的input。txt文件  

            InputStreamReader reader = new InputStreamReader(  

                    new FileInputStream(filename)) // 建立一个输入流对象reader  

            BufferedReader br = new BufferedReader(reader) // 建立一个对象,它把文件内容转成计算机能读懂的语言  

            String line = ""  

            line = br.readLine()  

            while (line != null) {  

                line = br.readLine() // 一次读入一行数据  

            }  

  

            /* 写入Txt文件 */  

            File writename = new File(".\\result\\en\\output.txt") // 相对路径,如果没有则要建立一个新的output。txt文件  

            writename.createNewFile() // 创建新文件  

            BufferedWriter out = new BufferedWriter(new FileWriter(writename))  

            out.write("我会写入文件啦\r\n") // \r\n即为换行  

            out.flush() // 把缓存区内容压入文件  

            out.close() // 最后记得关闭文件  

  

        } catch (Exception e) {  

            e.printStackTrace()  

        }  

    }  

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9919152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存