node 怎么区分读取的是文件还是文件夹

node 怎么区分读取的是文件还是文件夹,第1张

var fs = require("fs")

var stat = fs.lstatSync("./xx")

console.log(stat.isDirectory())

如纳春果答亮返回结果为true则为清茄宽文件夹。

nodejs编码只支持utf8的编码方式,无论是打开某个文件或者写.js脚本都得以utf8的编码方式保存,不然程序无法运行,读出来的文件是乱码。

如果是在前台,读取文件是通过FileReader或者FileReaderSync这两个webAPI和input[type='file']标签来配合来完成,但是这个两个API已经包涵了判断文件的编码方式的功能,无论是GBK还是utf8编码的文件都能正确打开不出现乱码,但是nodejs就会出现这样的问题,读取gbk和unicode编码的文件出现奇怪的乱码,有一个模块iconv-lite可以解决搜信编码问题,但是前提是你得知道这个文件的编码方式,举个例子:

有一个gkb的文件叫gbk.txt正确查看它的方式如下:

var

icon=require('iconv-lite')

var

fs=require('fs'改漏备)

fs.readFile('gbk.txt',function(err,buffer){

var

str=iconv.decode(buffer,'gbk')

console.log(str)//得到无乱码的内容

})

但是如果不知道文件的编码方式,那有该怎么办呢?

那就来聊一聊编码方式,首先UNICODE编码,UNICODE编码的文件无论核毁内容是什么,前两个字节要不是FF

FE

或者

FE

FF,

utf-8头两个字节是EF

BB,至于gbk吧,目前我没找到判断方法,只能粗略的判断如果不是unicode和utf8就认为是GBK,

代码如下:

var

fs=require('fs')

fs.readFile('code.txt',function(err,buffer){

if(buffer[0]==0xff&&buffer[1]==0xfe){

console.log('unicode')

}else

if(buffer[0]==0xfe&&buffer[1]==0xff){

console.log('unicode')

}else

if(buffer[0]==0xef&&buffer[1]==0xbb){

console.log('utf8')

}else{

console.log('else')

}

})

由此可以这样理解Node和Element,Node是节点,一个属性、一段文字、一个注释等都是节点,而Element是元素,是比较完整的一个xml的元素,即我们口头上说的xml“结点”(此处故意使用“结”字,以示与“节点”Node区别),呵呵……

dom4j帮助文档在dom4j-1.6.1/docs/guide.html文件里面,全部是英文,但是基本上应该能看懂。

1、 四种 *** 作xml的方式:SAX,DOM,JDOM,DOM4J.

2、 DOM(Document Object Model):意思历大迅是把整个xml做为一个整体对象,直接全部放到内存里面,不管xml文件有多大;

3、 SAX=Sample API for XML:假如xml文件有2G,用第一种方式,是很困难的,SAX用的是一种类似流媒体方式进行的。

DOM和SAX是java的API,处理xml文件的时候,相对来说是比较困难的,于是出现了下面两种框架,包装了上面两个框架。

4、 JDOM:

5、 DOM4J:

6、 利用DOM4J解析xml文件(读取所有的属性节点)。

Document可以理解为整个文档对象

取root节点。Document.getRootElement()返回的是一个Element(元素)

7、 理解运用xpath,path就是路径,xpath在xml文件里面找到特定的节点。

Document.selectNodes(“//hibernate-mapping/class/property”) //其中hibenate-mapping是根节点。做变org.dom4j.Node对象返回的。

Document.selectSingleNodes(“//hibernate-mapping/class/property”)//只拿第一个。

基中@name是property的属性名valueOf是拿出name的值;

需要加入DOM4J里面的jaxen包

8、 DOM4J的生成xml文件

9、 用FileWriter生成xml文件的时候,可能没有格式,可以用XMLWriter类,这样自动进行美化。

10、 DOM4J修改xml文件;很少用。

11、 自动生成代码往往用的是:freemarker或velocity,这是常用的。用dom4j生成也很少用。

12、 怎肢此么用表里面的结构生仿竖成xml文件。

13、 JavaDB

a) Properties对象:可以理解为一个表格对应key,value

14、 Databasemetadata,可以能过这个JDK类,读取数据库的表结构,通过这个表结构做一些自己的事情。(熟悉用法)通过JDK文档和google学习

15、 元数据就是数据的数据,用来描述数据的数据。

16、 DWR,对Ajax框架封住得比较好,是类和java的结合。


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

原文地址: http://outofmemory.cn/tougao/12156296.html

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

发表评论

登录后才能评论

评论列表(0条)

保存