vfs学习

查询代码

  • select id_,date_ ,name_,group_concat(course_), group_concat(score_),sum(score_)from score group by date_,name_ order by sum(score_) desc

    vfs是使用一张数据库表模拟了本地磁盘存储 就是一张数据库表。。。。。。。

  • 啥用?第二周训练 就是把文件传到vfs 再从vfs导入到score表
  • eg:一个数据库表需要读系统上的文件存入数据 但它不知道你的系统是linux(/root/home/test.txt) 还是win(D:/test.txt)
  • linux 没有盘符 是个文件系统 win 有盘符 所以先统一定义虚拟位置vfs 上传到vfs 再存入数据库
  • 这样,存入数据就和系统的存储结构无关啦。
1
2
3
- 为各类文件系统提供了一个统一的操作界面和应用编程接口。
- VFS是一个可以让open()、read()、write()等系统调用不用关心底层的存储介质和文件系统类型就可以工作的粘合层。
- 为了解决不同操作系统文件调用问题

先把示例代码放上来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.esen.abistudy.vfs;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import com.esen.abistudy.server.Server;
import com.esen.util.StmFunc;
import com.esen.util.StrFunc;
import com.esen.vfs2.Vfs2;
import com.esen.vfs2.VfsFile2;
/**
* vfs
*
* @author admin
* @since Aug 16, 2018
*/
public class TestVfs {
/**
* txtvfs
*/
public void testVfs() {
//vfs2,ServerVfs2
Server svr = Server.getInstance();
Vfs2 vfs = svr.getVfs();
//VfsFile2
VfsFile2 file = vfs.getVfsFile("/DATA.txt", svr.getVfsOperatorAsAdmin());
file.createFile();
//
file.importFile(new File("C:\\text.txt"));
}
/**
* vfs
* @throws IOException
*/
public void testRead() throws IOException {
//vfs2,Server
Server svr = Server.getInstance();
Vfs2 vfs = svr.getVfs();
//VfsFile2InputStream
VfsFile2 file = vfs.getVfsFile("/DATA.txt", svr.getVfsOperatorAsAdmin());
InputStream input = file.getInputStream();
try {
//
StmFunc.readLine(input, StrFunc.GBK);
} finally {
//
input.close();
}
}
}