java实现文件系统的简单介绍

博主:adminadmin 2022-12-24 15:54:08 48

今天给各位分享java实现文件系统的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java怎么连接hdfs文件系统,需要哪些包?

apache的Hadoop项目提供一类api可以通过java工程操作hdfs中的文件,包括:文件打开,读写,删除等、目录的创建,删除,读取目录中所有文件等。

1、到下载Hadoop,解压后把所有jar加入项目的lib里

2、程序处理步骤: 1)得到Configuration对象,2)得到FileSystem对象,3)进行文件操作,简单示例如下:

/**

*

*/

package org.jrs.wlh;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.FSDataInputStream;

import org.apache.hadoop.fs.FSDataOutputStream;

import org.apache.hadoop.fs.FileStatus;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;

/**

* @PutMeger.java

* java操作hdfs 往 hdfs中上传数据

* @version $Revision$/br

* update: $Date$

*/

public class PutMeger {

public static void main(String[] args) throws IOException {

String[] str = new String[]{"E:\\hadoop\\UploadFileClient.java","hdfs://master:9000/user/hadoop/inccnt.java"};

Configuration conf = new Configuration();

FileSystem fileS= FileSystem.get(conf);

FileSystem localFile = FileSystem.getLocal(conf); //得到一个本地的FileSystem对象

Path input = new Path(str[0]); //设定文件输入保存路径

Path out = new Path(str[1]); //文件到hdfs输出路径

try{

FileStatus[] inputFile = localFile.listStatus(input); //listStatus得到输入文件路径的文件列表

FSDataOutputStream outStream = fileS.create(out); //创建输出流

for (int i = 0; i inputFile.length; i++) {

System.out.println(inputFile[i].getPath().getName());

FSDataInputStream in = localFile.open(inputFile[i].getPath());

byte buffer[] = new byte[1024];

int bytesRead = 0;

while((bytesRead = in.read(buffer))0){ //按照字节读取数据

System.out.println(buffer);

outStream.write(buffer,0,bytesRead);

}

in.close();

}

}catch(Exception e){

e.printStackTrace();

}

}

}

如何用Java编写外部系统接口实现文件导入

// 定义接口

import java.io.FileOutputStream;

public interface OperateFile {

// 导入文件

public boolean importFile(String path,String name);

// 导出文件

public FileOutputStream exportFile(String path);

}

//..........................................

// 实现子类

import java.io.FileOutputStream;

public class OperateFileImp implements OperateFile{

public boolean importFile(String path, String name) {

// File file = new File(path,name)....

// 在此实现方法,作业嘛…

return false;

}

public FileOutputStream exportFile(String path) {

//........

return null;

}

}

//...................................

//..给外部提供接口....

public class Factory {

private static OperateFile op = null;

public static final int OPERATE_FILE= 1001;

private Factory(){

}

// 实现给外部的接口调用

public OperateFile getInstance(int classType){

if(classType==1001){

op = new OperateFileImp();

return op;

}

else{

throw new RuntimeException("要产生的子类没有定义!");

}

}

}

Java如何实现文件系统

package com.kiritor.util;

import java.io.File;

import java.io.FileFilter;

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

/**

* 文件的相关操作类

*

* @author Kiritor

*/

public class FileOperation {

private static String contentPath;

private static String filePath;

private static File[] fileList = null;// 保存文件列表,过滤掉目录

public FileOperation() {

}

/** 构造函数的参数是一个目录 */

public FileOperation(String path) {

File file = new File(path);

if (file.isDirectory())

this.contentPath = path;

else

this.filePath = path;

}

/**获取文件列表*/

public static File[] getFiles() {

if (contentPath == null) {

File file = new File(filePath);

fileList = new File[1];

fileList[0] = file;

return fileList;

}

fileList = new File(contentPath).listFiles(new FileFilter() {

/**使用过滤器过滤掉目录*/

@Override

public boolean accept(File pathname) {

if(pathname.isDirectory())

{

return false;

}else

return true;

}

});

return fileList;

}

/** 对当前目录下的所有文件进行排序 */

public static File[] sort() {

getFiles();

Arrays.sort(fileList, new FileComparator());

return fileList;

}

public static void tree(File f, int level) {

String preStr = "";

for(int i=0; ilevel; i++) {

preStr += " ";

}

File[] childs = f.listFiles();

//返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

for(int i=0; ichilds.length; i++) {

System.out.println(preStr + childs[i].getName());

if(childs[i].isDirectory()) {

tree(childs[i], level + 1);

}

}

}

// 提供一个"比较器"

static class FileComparator implements java.util.ComparatorFile {

@Override

public int compare(File o1, File o2) {

// 按照文件名的字典顺序进行比较

return o1.getName().compareTo(o2.getName());

}

}

}

用java实现文件的上传与下载

1.下载简单,无非是把服务器上的文件或者数据库中的BLob(或其他二进制型),用流读出来,然后写到客户端即可,要注意 ContentType。

2.上传,可以用Apache Commons Upload等开源工具,或者自己写:

form要用enctype="multipart/form-data"

然后服务器端也是用IO把客户端提交的文件流读入,然后写到服务器的文件系统或者数据库里。不同的数据库对Lob字段操作可能有所不同,建议用Hibernate,JPA等成熟的ORM框架,可以不考虑数据库细节。

关于java实现文件系统和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-24,除非注明,否则均为首码项目网原创文章,转载请注明出处。