网站模板库
  • 首页
  • web前端工具
    • HTML/JS转换工具
    • JS/HTML格式化工具
    • 字母/英文大小写转换工具
    • robots.txt文件生成工具
    • Js压缩/格式化工具
    • Css在线压缩工具_代码格式化
  • 关于我们
    • 免责声明
    • 联系我们
    • 广告服务
    • 服务项目
    • 关于我们
    • 网站轮播
    • 公告
    • 成都优优科技专用
    • 按行业分类
  • web学院
    • 服务器教程
    • 学习资料
      • 基础书籍
      • 交互书籍
      • 入门教程
      • 特效分类
    • 案例分享
    • web资讯
  • 网页特效
    • 图片特效
    • 导航特效
    • 滑动按钮
    • 表单特效
    • 文字特效
    • 弹窗特效
    • 其他特效
  • 织梦模板
    • 科技/电子/数码/通信
    • 文化/艺术/广告/传媒
    • 装修/设计/家居/家具
    • 基建/施工/地产/物业
    • 餐饮/酒店/旅游/票务
    • 食品/果蔬/饮料/日用
    • 服饰/珠宝/礼品/玩具
    • 摄影/婚庆/家政/生活
    • 运动/健身/体育/器材
    • 学校/教育/培训/科研
    • 美容/保健/医院/医疗
    • 金融/财税/咨询/法律
    • 政府/组织/集团/协会
    • 汽车/物流/交通/搬运
    • 机械/设备/制造/仪器
    • 化工/环保/能源/材料
    • 农业/畜牧/养殖/宠物
    • 其他模版
    • IT/软件/信息/互联网
  • 手机模板
    • 手机APP模板
    • 微信小程序模板
    • wap
  • 网站模板
    • joomla模板
    • Drupal模板
    • z-blog模板
    • EyouCms模板
    • Bootstrap模板
    • 帝国cms模板
    • CmsEasy模板
    • MetInfo模板
    • 购物商城模板
      • Shopify主题
      • PrestaShop主题
    • 后台模板
    • 纯HTML模板
    • ecshop模板
    • phpwind模板
    • pbootcms模板
    • phpcms模板
    • wordpress模板
    • discuz模板
  • 教程
    • 织梦教程
    • Discuz教程
    • WordPress教程
    • Phpcms教程
    • Phpwind教程
    • ECShop教程
    • Joomla教程
    • Drupal教程
    • zblog教程
    • EyouCMS教程
    • 帝国cms教程
    • MetInfo教程
    • CmsEasy教程
登录
当前位置:网站模板库 > web学院 > 服务器教程 > 我想在一个JSP页面中访问一个读取一个位于服务器上的.txt文件,这个文件的路径应该怎么样设置?
商业源码 服务器教程 2024-02-06 11:41:02

我想在一个JSP页面中访问一个读取一个位于服务器上的.txt文件,这个文件的路径应该怎么样设置?

我想在一个JSP页面中访问一个读取一个位于服务器上的.txt文件,这个文件的路径应该怎么样设置?,第1张

如果要访问别的机器的文件 就得需要别的机器把此文件服务开放

所以假如你要访问 B电脑的 xxtxt

就需要在B电脑架设web服务器 比如tomcat

然后 你可以用 xmlhttp访问B电脑的

http://b/xxtxt 来进行操作

  File类有两个常用方法可以得到文件路径一个是:getCanonicalPath(),另一个是:getAbsolutePath(),可以通过File类的实例调用这两个方法例如filegetAbsolutePath()其中file是File的实例对象。下面是一个具体例子:

public class PathTest

{

    public static void main(String[] args)

    {

        File file = new File("\\src\\baidu");

        Systemoutprintln(filegetAbsolutePath());

        try

        {

            Systemoutprintln(filegetCanonicalPath());

        } catch (IOException e)

        {

            eprintStackTrace();

        }

    }

}

  getAbsolutePath()和getCanonicalPath()的不同之处在于,getCanonicalPath()得到的是一个规范的路径,而getAbsolutePath()是用构造File对象的路径+当前工作目录。例如在上面的例子中(点号)代表当前目录。getCanonicalPath()就会把它解析为当前目录但是getAbsolutePath()会把它解析成为目录名字(目录名字是点号)。

  下面是上面程序在我电脑上的输出:

G:\xhuoj\konw\\src\baidu

G:\xhuoj\konw\src\baidu

import javaxswing;

import javaxswingtableAbstractTableModel;

import javaxswingtableTableCellRenderer;

import javaxswingeventTreeModelListener;

import javaxswingeventTreeSelectionListener;

import javaxswingeventTreeSelectionEvent;

import javaxswingtreeTreeModel;

import javaxswingtreeTreePath;

import javaxswingtreeTreeCellRenderer;

import javaawt;

import javaawtevent;

import javaioFile;

import javaioFileInputStream;

import javaioIOException;

import javaioFileFilter;

import javautilCalendar;

import javautilArrayList;

import javatextSimpleDateFormat;

import javatextMessageFormat;

/

  @author Hardneedl

 /

class JavaExplorer extends JFrame {

    private static final Dimension minSize = new Dimension(300, 200);

    private static final Dimension maxSize = new Dimension(1024, 768);

    private static final Dimension preferredSize = new Dimension(600, 400);

    private JLabel statusLabel;

    private JTree tree;

    private JTable detailTable;

    private FileTableModel tableModel;

    public Dimension getMaximumSize() {return maxSize;}

    public Dimension getMinimumSize() {return minSize;}

    public Dimension getPreferredSize() {return preferredSize;}

    public String getTitle() {return "Java Explorer";}

    JavaExplorer() throws HeadlessException {

        init();

        doLay();

        attachListeners();

    }

    private void init() {

        statusLabel = new JLabel(){public Color getForeground() {return ColorBLUE;}};

        tree = new JTree(new FileTreeModel());

        treesetCellRenderer(new DirCellRenderer());

        detailTable = new JTable(tableModel = new FileTableModel());

        detailTablegetColumnModel()getColumn(2)setCellRenderer(new TableCellRenderer(){

            private JLabel label=new JLabel();

            private final SimpleDateFormat format = new SimpleDateFormat("yyyy年mm月dd日 HH时MM分ss秒"); 

            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

                if (value instanceof Calendar){

                    Calendar cal = (Calendar)value;

                    labelsetText(  formatformat(calgetTime()) );

                }

                return label;

            }

        });

        detailTablegetColumnModel()getColumn(0)setCellRenderer(new TableCellRenderer(){

            private JLabel label = new JLabel();

            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

                if (value instanceof File) {

                    File f = (File)value;

                    labelsetText(fgetName());

                    labelsetForeground( fisDirectory() ColorRED : ColorBLACK);

                }

                return label;

            }

        });

    }

    private void doLay() {

        Container container = getContentPane();

        JSplitPane splitPane = new JSplitPane(JSplitPaneHORIZONTAL_SPLIT, new JScrollPane(tree), new JScrollPane(detailTable));

        containeradd(splitPane,BorderLayoutCENTER);

        containeradd(statusLabel,BorderLayoutSOUTH);

        pack();

    }

    private void attachListeners() {

        setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

        treeaddTreeSelectionListener(new SelectionListener());

        treeaddTreeSelectionListener(new _DirSelectionListener());

        DirCellSelectedListener ck =new DirCellSelectedListener(tree);

        detailTableaddKeyListener(ck);

        detailTableaddMouseListener(ck);

    }

    public static void main(String[] args) {

        new JavaExplorer()setVisible(true);

    }

    private class FileTreeModel implements TreeModel {

        static final String root = "我的电脑";

        private File[] rootFiles;

        private final FileFilter dirFilter = new FileFilter(){

            public boolean accept(File f) {return fisDirectory();}

        };

        private FileTreeModel() {rootFiles = FilelistRoots();}

        public Object getRoot() {return root;}

        public Object getChild(Object parent, int index) {

            if (parent==getRoot())  return rootFiles[index];

            if (parent instanceof File) {

                File pf = (File)parent;

                return pflistFiles(dirFilter)[index];

            }

            return null;

        }

        public int getChildCount(Object parent) {

            if (parent == getRoot())  return rootFileslength;

            

            if (parent instanceof File){

                File pf = (File)parent;

                File[] fs = pflistFiles(dirFilter);

                return fs == null0:fslength;

            }

            return 0;

        }

        public boolean isLeaf(Object node) {return false;}

        public void valueForPathChanged(TreePath path, Object newValue) {}

        public void addTreeModelListener(TreeModelListener l) {}

        public void removeTreeModelListener(TreeModelListener l) {}

        public int getIndexOfChild(Object parent, Object child) {

            if (parent == getRoot()) {

                for (int i = 0,j=rootFileslength; i < j; i++)

                    if (rootFiles[i]==child) return i;

            }

            if (parent instanceof File) {

                File pf = (File)parent;

                File[] fs = pflistFiles(dirFilter);

                for (int i = 0,j=fslength; i < j; i++) {

                    if (fs[i]equals(child)) return i;

                }

            }

            return -1;

        }

    }

    private class FileTableModel extends AbstractTableModel {       

        public int getRowCount() {return dir==null||dirisFile()0:dirlistFiles()length;}

        public int getColumnCount() {return 3;}

        private File dir;

        private void setDir(File dir){

            thisdir = dir;

            fireTableDataChanged();

        }

        public Class<> getColumnClass(int columnIndex) {

            switch(columnIndex) {

                case 0:return Fileclass;

                case 1:return Integerclass;

                case 2:return Calendarclass;

                default:return Stringclass;

            }

        }

        public String getColumnName(int column) {

            switch (column) {

                case 0: return "名称";

                case 1: return "大小";

                case 2: return "修改日期";

                default:return "";

            }

        }

        public Object getValueAt(int rowIndex, int columnIndex) {

            File[]fs=dirlistFiles();

            File f = fs[rowIndex];

            switch(columnIndex){

                case 0:return f;

                case 1:

                    if (fisDirectory()) return null;

                    try {

                        if (fcanRead())

                        return new FileInputStream(f)available();

                    } catch (IOException e) {

                        eprintStackTrace();

                    }

                case 2:

                    Calendar cl = CalendargetInstance();

                    clsetTimeInMillis(flastModified());

                    return cl;

            }

            return null;

        }

    }

    private class _DirSelectionListener implements TreeSelectionListener {

        public void valueChanged(TreeSelectionEvent e) {

            TreePath path = egetNewLeadSelectionPath();

            if (path!=null){

                Object obj =  pathgetLastPathComponent();

                if (obj instanceof File) {

                    File f = (File)obj;

                    File[] fs = flistFiles();

                    statusLabelsetText(fs==nullnull:MessageFormatformat("{0}个文件",fslength ));

                }

                else

                    statusLabelsetText(null);                

            }

        }

    }

    private class DirCellRenderer extends JLabel implements TreeCellRenderer {

        public boolean isOpaque() {return true;}

        public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {

            if (value instanceof File){

                String s = ((File)value)getName();

                setText(sisEmpty()valuetoString() : s);

            }

            else

                setText(valuetoString());

            setForeground(selected ColorBLUE : ColorBLACK);

            setBackground(selected ColorYELLOW : ColorWHITE);

            return this;

        }

    }

    private class SelectionListener implements TreeSelectionListener{

        public void valueChanged(TreeSelectionEvent e) {

            Object obj = egetNewLeadSelectionPath()getLastPathComponent();

            if (obj instanceof File) {

                tableModelsetDir((File)obj);

            }

        }

    }

    private class DirCellSelectedListener implements KeyListener, MouseListener {

        private JTree tree;

        private DirCellSelectedListener(JTree t) {tree=t;}

        private void action(InputEvent e){

            if (e instanceof MouseEvent) {

            }

            if (e instanceof KeyEvent) {

            }

        }

        private void expand(File f){

            if (fisDirectory()) {

                ArrayList<File> L = new ArrayList<File>();

                Ladd(f);

                File parentFile = fgetParentFile();

                while (parentFile != null) {

                    Ladd(parentFile);    

                    parentFile = parentFilegetParentFile();

                }

                TreePath treePath = new TreePath(FileTreeModelroot);

                for (int i = Lsize()-1; i > -1; i--) {

                    treePath = treePathpathByAddingChild(Lget(i));

                }                

                treesetSelectionPath(treePath);

            }

        }

        public void keyTyped(KeyEvent e) {}

        public void keyPressed(KeyEvent e) {

            if (egetKeyCode() != KeyEventVK_ENTER) return;

            if (egetSource() == detailTable) {

                int row = detailTablegetSelectedRow();

                if (row!=-1){

                    File f = (File)detailTablegetValueAt(row,0);

                    expand(f);

                }

            }

        }

        public void keyReleased(KeyEvent e) {

        }

        public void mouseClicked(MouseEvent e) {

            if (egetClickCount()==2) {

                if(egetSource()==detailTable){

                    int row = detailTablegetSelectedRow();

                    if (row!=-1){

                        File f = (File)detailTablegetValueAt(row,0);

                        expand(f);

                }

                }

            }

        }

        public void mousePressed(MouseEvent e) {

        }

        public void mouseReleased(MouseEvent e) {

        }

        public void mouseEntered(MouseEvent e) {

        }

        public void mouseExited(MouseEvent e) {

        }

    }

}

在客户端服务器的WCF服务代码里调用ReadFile方法,传入公司服务器上文件的物理路径,即可在客户端服务器端获取到公司服务器文件的二进制流了,之后可以保存下来,也可以直接回发给客户客户端

可以用SQL语句来获取文件:

select Tc from openrowset(bulk N'D:\DB_Backup\E5KST01\audit_trail_20130419bak', single_blob) T(c)

String extend = workergetPhoto()substring(workergetPhoto()

lastIndexOf(""));

// 文件的扩展名

            String folder = "/" + GlobeUPLOAD_FOLDER + "/" + workergetUser()getUserName() + "/" + GlobeWORKER_FOLDER + "/";

            // 存放上传文件的目录

            webfilecreateFolder(getBase(request) + folder);

            // 创建文件夹,getBase(request);获得项目的物理路径(在磁盘中的位置)

            String imgPath = folder + webtoolgetNowDate(2) + extend;// 产生新的相对路径(不带盘符的)

            webfilecopyFile(getBase(request) + workergetPhoto(), getBase(request) + imgPath);// 上传文件(这里只是复制了,因为上传的事情之前已经完成了)

            workersetPhoto(imgPath);

            // 这个路径是插入数据库的

            worker = workerDaoadd(worker);

            // 给数据库插入一条记录

查询的时候就能获取插入数据库的路径了。

路径 文件 目录 电脑 别的
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 我想在一个JSP页面中访问一个读取一个位于服务器上的.txt文件,这个文件的路径应该怎么样设置?

商业源码 钻石

分享到:
上一篇
服务器为什么用linux
下一篇
魔兽世界一区死亡之翼属于什么区?

相关推荐

做过阵列的硬盘如何克隆

做过阵列的硬盘如何克隆

故障分析和处理的过程、工具与方法

故障分析和处理的过程、工具与方法

服务器备份方案

服务器备份方案

为什么最近手机上百度贴吧总显示连接服务器错误,怎么回事儿?

为什么最近手机上百度贴吧总显示连接服务器错误,怎么回事儿?

0条评论

发表评论 取消回复

要发表评论,您必须先登录。

提供最优质的资源集合

立即查看 了解详情
网站模板库

主题/付费下载/查看/余额管理/自定义积分,集成支付,卡密,推广奖励等。

本站导航
  • 链接标题
友情链接
  • 链接标题
快速搜索
本站由钛宇宙强力驱动
友情链接:
    商业源码网蜀ICP备2023005044号
    网站模板库
    • 登录
    • 注册
    网站模板库
    • 首页
    • web前端工具►
      • HTML/JS转换工具
      • JS/HTML格式化工具
      • 字母/英文大小写转换工具
      • robots.txt文件生成工具
      • Js压缩/格式化工具
      • Css在线压缩工具_代码格式化
    • 关于我们►
      • 免责声明
      • 联系我们
      • 广告服务
      • 服务项目
      • 关于我们
      • 网站轮播
      • 公告
      • 成都优优科技专用
      • 按行业分类
    • web学院►
      • 服务器教程
      • 学习资料►
        • 基础书籍
        • 交互书籍
        • 入门教程
        • 特效分类
      • 案例分享
      • web资讯
    • 网页特效►
      • 图片特效
      • 导航特效
      • 滑动按钮
      • 表单特效
      • 文字特效
      • 弹窗特效
      • 其他特效
    • 织梦模板►
      • 科技/电子/数码/通信
      • 文化/艺术/广告/传媒
      • 装修/设计/家居/家具
      • 基建/施工/地产/物业
      • 餐饮/酒店/旅游/票务
      • 食品/果蔬/饮料/日用
      • 服饰/珠宝/礼品/玩具
      • 摄影/婚庆/家政/生活
      • 运动/健身/体育/器材
      • 学校/教育/培训/科研
      • 美容/保健/医院/医疗
      • 金融/财税/咨询/法律
      • 政府/组织/集团/协会
      • 汽车/物流/交通/搬运
      • 机械/设备/制造/仪器
      • 化工/环保/能源/材料
      • 农业/畜牧/养殖/宠物
      • 其他模版
      • IT/软件/信息/互联网
    • 手机模板►
      • 手机APP模板
      • 微信小程序模板
      • wap
    • 网站模板►
      • joomla模板
      • Drupal模板
      • z-blog模板
      • EyouCms模板
      • Bootstrap模板
      • 帝国cms模板
      • CmsEasy模板
      • MetInfo模板
      • 购物商城模板►
        • Shopify主题
        • PrestaShop主题
      • 后台模板
      • 纯HTML模板
      • ecshop模板
      • phpwind模板
      • pbootcms模板
      • phpcms模板
      • wordpress模板
      • discuz模板
    • 教程►
      • 织梦教程
      • Discuz教程
      • WordPress教程
      • Phpcms教程
      • Phpwind教程
      • ECShop教程
      • Joomla教程
      • Drupal教程
      • zblog教程
      • EyouCMS教程
      • 帝国cms教程
      • MetInfo教程
      • CmsEasy教程

      弹窗标题

      这是一条网站公告,可在后台开启或关闭,可自定义背景颜色,标题,内容,用户首次打开关闭后不再重复弹出,此处可使用html标签...