java获取ip地址 详解java编程思想

一般项目中都会遇到文件的读写,一般有两个问题需要处理。1路径问题2阅读和写作问题路径的解路径之间的连接”//”=”\”=”/”eg1:D磁盘下的文件夹中的1.txtpath = & # 8221d://file//1 . txt ”path = & # 8221d:/file/1 . txt ”p...

一般项目中都会遇到文件的读写,

一般有两个问题需要处理。

1路径问题

2阅读和写作问题

路径的解

路径之间的连接”//”=”\”=”/”

eg1:D磁盘下的文件夹中的1.txt

path = & # 8221d://file//1 . txt ”

path = & # 8221d:/file/1 . txt ”

path = & # 8221d:\ file \ 1 . txt ”

三种都可以。

1绝对路径(绝对不推荐)

是电脑根目录下的c盘和D盘。详情请参考eg1。

2相对路径

在java中,默认是从项目的根目录开始,如下所示。

获取这个目录中的所有文件(获取一个目录)

。/转到当前根目录

String path=”./”;File f=new File(path);File[] files=f.listFiles();for(int i=0;i<files.length;i++){System.out.println(files[i].getName());}

../获取根目录下的父目录。如果想得到多级父目录,只需要写N../(需要注意的是,这种方法最多只能获取Windows盘下的根目录,也就是最多只能获取c盘或者D盘,不可能像Linux一样获取/root/d盘)。

主要是区分工作室空和出版室空。

例如,上传struts2文件时。

定义接受文件的目录。

servlet context servlet context = servletactioncontext . getservlet context();

string str = servlet context . get realpath(“/files/”+file filename);

Eclipse暂时有点小问题。这个我以后再写。

读写文档(如有不正确,请积极指出,共同进步)

因为文件有不同的格式,就文本文件而言,有utf-8 GBK等等。

建议使用字节流(InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先)而不是字符流(Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先)

其实内部一个是byte[]实现的,另一个是char[]实现的。你可以看到JDK的源代码。

具体字符流和字节流的区别请看转载。

http://blog.csdn.net/zx***n660/article/details/7875799http://blog.csdn.net/cynhafa/article/details/6882061读写文件package com.wzh.utils;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;public class InOutFile {/*** @param file null、一个文件、一个文件目录、* <pre>* fileToByte(null)=null* fileToByte(file)=null file>2G* fileToByte(文件目录)=null* fileToByte(file)=byte[]* </pre>* @return null(文件不存在,null,文件目录,文件太大>2G) byte[](转换成功)*/public byte[] fileToByte(File file) {byte[] buffer = null;if (file == null) {throw new IndexOutOfBoundsException();}if (file.isDirectory())return buffer;if (file.length() > Integer.MAX_VALUE)return buffer;if (file.isFile()) {int filelength = (int) file.length();InputStream inputStream = null;BufferedInputStream bufferedInputStream = null;OutputStream outputStream=null;BufferedOutputStream bufferedOutputStream=null;File outfile=new File(“files//out//”+file.getName());int n = 0;int off = 0;int length = 4096;try {if(!outfile.exists())outfile.createNewFile();inputStream = new FileInputStream(file);outputStream=new FileOutputStream(outfile, true);bufferedInputStream = new BufferedInputStream(inputStream);bufferedOutputStream=new BufferedOutputStream(outputStream);buffer = new byte[filelength];/** 添加(length <= filelength – off) ? length : filelength – off)的比较* 为了防止读到最后buffer 剩余的长度没有4096 装不下那么多会导致读取不了IndexOutOfBoundsException()* 当filelength – off=0时表示文件读取完毕但是read内部认为是其他线程占用io导致堵塞并不会认为文件读取完毕* 所以要添加上filelength – off>0*/while ((filelength – off) > 0 && (n = bufferedInputStream.read(buffer, off,((length <= filelength – off) ? length : filelength – off))) >= 0) {bufferedOutputStream.write(buffer, off, n);off += n;}}catch (Exception e) {}finally {closeInputStream(bufferedInputStream);closeInputStream(inputStream);closeOutputStream(bufferedOutputStream);closeOutputStream(outputStream);System.out.println(“end”);}}return buffer;}/*** close inoutstream* @param inputStream null or the inputstream’s child*/private void closeInputStream(InputStream inputStream) {if (inputStream == null)return;try {inputStream.close();}catch (Exception e) {}}/*** close outputStream* @param outputStream null or the outputStream child*/private void closeOutputStream(OutputStream outputStream) {if (outputStream == null)return;try {outputStream.flush();outputStream.close();}catch (Exception e) {}}}

当然,字符流也可以用来读取文件。

也可以从流中读取字符,但是应该指定文件(文本文件)的编码。

/*** 创建不同格式的文本文件* @throws Exception*/private void createFile() throws Exception {File file = new File(“files//kindsfor***t//utf//1.txt”);//File file = new File(“files//kindsfor***t//gbk//1.txt”);if (!file.exists())file.createNewFile();Writer writer = new OutputStreamWriter(new FileOutputStream(file, true), “UTF-8”);//Writer writer = new OutputStreamWriter(new FileOutputStream(file), “GBK”);BufferedWriter bufferedWriter = new BufferedWriter(writer);bufferedWriter.write(“我是中文测试啊测试啊”);bufferedWriter.flush();bufferedWriter.close();writer.close();}

如有不妥请指出,谢谢。

本文来自夜遇投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/587964.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 06-12
下一篇 06-12

相关推荐

  • 爬虫软件哪个好用 获取客户数据的软件推荐

    目前市场上常用的爬虫工具可以分为云网络爬虫和数据采集器两大类(除了自己开发设计的爬虫工具和爬虫框架)。云爬虫就是不需要下载安装程序。您可以在网页上构建网络爬虫,并在web服务器上运行它。网站提供网络带宽和24小时服务。数据采集器一般是指安装下载,然后构建一个网络

    2023-07-29 11:25:01
    271 0
  • 红米手机root权限获取 红米手机专用root工具

    想法分为以下几点:1.正式解锁BL锁2.解锁后刷入note8专用REC(注意和note8pro不一样)3.刷入REC后,打开高级选项,先点击“签名根”。选择“root系统”后,重启定位器,ROOT已经完成。注意:root的前提下,必须先解锁官方BL锁。解锁官方BL锁流程:1.登录定位器小米账号,连续点击版

    2023-07-28 21:01:01
    949 0
  • 怎么获取root权限小米,分享两种超实用的方法

    前言:海德里诺。:长时间在线知识分享。关于如何获得root权限,Android前面写了很多相关的解锁教程。之前的都是相关通用教程。查看之前的文章,可以点击我的头像,关注我,查看我的头条文章列表。任何安卓***在获得root权限之前,都必须解锁。今天,我分享了我很久以来关于互联

    2023-07-27 04:53:01
    926 0
  • 《江南百景图》树苗获取方法介绍 树苗怎么获得

    江南百景图树苗是最近刚在游戏中出现的产品,因为2022年的植树节马上就要到了,大家都可以在游戏中获得树苗。有好的获取小树苗方法的手游小编会在下面的攻略中分享给大家,玩家可以快速参考攻略,找出获取的方法。江南百景取苗方法介绍一、采集方式:是树苗游戏中植物节交换的

    2023-07-26 23:55:01
    450 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信