精华内容
下载资源
问答
  • Java读取文件

    万次阅读 2019-06-04 16:30:13
    Java读取文件 本文是基于Windows 10系统环境,学习和实现Java读取文件: Windows 10 MyEclipse 10 一、Java读取文件 (1) 代码实现 java代码 public class Demo(){ File file = new File("e:/a.txt"); //读取...

    Java读取文件

    本文是基于Windows 10系统环境,学习和实现Java读取文件:

    • Windows 10
    • MyEclipse 10

    一、Java读取文件

    (1) 代码实现

    • java代码
    public class Demo(){
    	File file = new File("e:/a.txt");
    	//读取内容
    	BufferedReader br = new BufferedReader(new FileReader(file));
    	String str = null;
    	while( (str=br.readLine())!=null ){
    		System.out.println(str);
    	}
    

    展开全文
  • java读取文件

    千次阅读 2016-12-29 15:56:51
    java读取文件 以字节为单位读取文件 以字符为单位读取文件 以行为单位读取文件 随机读取文件内容 ReadFromFile.javapackage cn.zhisheng.io;import java.io.*;/** * java读取文件 * Created by 10412 on 2016/12/...

    java读取文件

    • 以字节为单位读取文件
    • 以字符为单位读取文件
    • 以行为单位读取文件
    • 随机读取文件内容

    ReadFromFile.java

    package cn.zhisheng.io;
    
    import java.io.*;
    
    /**
     * java读取文件
     * Created by 10412 on 2016/12/29.
     */
    public class ReadFromFile
    {
        /**
         * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件
         * @param fileName 文件名
         */
        public static void readFileByBytes(String fileName)
        {
            File file = new File(fileName);
            InputStream in = null;
    
            try {
                System.out.println("以字节为单位读取文件内容,一次读取一个字节");
                //一次读一个字节
                in = new FileInputStream(file);
                int tempbyte;
                while ((tempbyte = in.read()) != -1)
                {
                    System.out.println(tempbyte);
                }
                in.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
                return;
            }
    
    
    
            try {
                System.out.println("以字节为单位读取文件内容,一次读取多个字节");
                //一次读取多个字节
                byte[] tempbytes = new byte[100];
                int byteread = 0;
                in = new FileInputStream(fileName);
                ReadFromFile.showAvailableBytes(in);
                // 读入多个字节到字节数组中,byteread为一次读入的字节数
                while ((byteread = in.read(tempbytes)) != -1) {
                    System.out.write(tempbytes, 0, byteread);
                }
    
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                if (in != null)
                {
                    try {
                        in.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
    
        /**
         * 以字符为单位读取文件,常用于读文本,数字等类型的文件
         * @param fileName 文件名
         */
        public static void readFileByChars(String fileName)
        {
            File file = new File(fileName);
            Reader reader = null;
    
            try {
    
                System.out.println("以字符为单位读取文件内容,一次读一个字符:");
                // 一次读一个字符
                reader = new InputStreamReader(new FileInputStream(file));
                int tempchar;
                while ((tempchar = reader.read()) != -1)
                {
                    // 对于windows下,\r\n这两个字符在一起时,表示一个换行。
    
                    // 但如果这两个字符分开显示时,会换两次行。
    
                    // 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。
    
                    if (((char)tempchar) != '\r')
                    {
                        System.out.print((char) tempchar);
                    }
                }
                reader.close();
    
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
    
            try {
    
                System.out.println("以字符为单位读取文件内容,一次读多个字符:");
    
                //一次读多个字符
                char[] tempchars = new char[30];
                int charread = 0;
                reader = new InputStreamReader(new FileInputStream(fileName));
    
                // 读入多个字符到字符数组中,charread为一次读取字符数
                while ((charread = reader.read(tempchars)) != -1)
                {
                    // 同样屏蔽掉\r不显示
                    if ((charread == tempchars.length) && (tempchars[tempchars.length - 1]) != '\r')
                    {
                        System.out.print(tempchars);
                    }
                    else
                    {
                        for (int i = 0; i < charread; i++ )
                        {
                            if (tempchars[i] == '\r')
                            {
                                continue;
                            }
                            else
                            {
                                System.out.print(tempchars[i]);
                            }
                        }
                    }
                }
    
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                if (reader != null)
                {
                    try {
                        reader.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
    
        /**
         * 以行为单位读取文件,常用于读面向行的格式化文件
         * @param fileName 文件名
         */
        public static void readFileByLines(String fileName)
        {
            File file = new File(fileName);
            BufferedReader reader =null;
    
            try {
                System.out.println("以行为单位读取文件内容,一次读一整行:");
    
                reader = new BufferedReader(new FileReader(file));
                String tempString = null;
                int line = 1;
                // 一次读入一行,直到读入null为文件结束
                while ((tempString = reader.readLine()) != null)
                {
                    // 显示行号
                    System.out.println("line "+line+": "+tempString);
                    line++;
                }
    
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                if (reader != null)
                {
                    try {
                        reader.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
    
        /**
         * 随机读取文件内容
         * @param fileName 文件名
         */
        public static void readFileBRandomAccess(String fileName)
        {
            RandomAccessFile randomFile = null;
    
            try {
    
                System.out.println("随机读取一段文件内容:");
    
                // 打开一个随机访问文件流,按只读方式
                randomFile = new RandomAccessFile(fileName, "r");
                // 文件长度,字节数
                long fileLength = randomFile.length();
                // 读文件的起始位置
                int beginIndex = (fileLength > 4) ? 4 : 0;
                // 将读文件的开始位置移到beginIndex位置
                randomFile.seek(beginIndex);
    
                byte[] bytes = new byte[10];
                int byteread = 0;
                // 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。
    
                // 将一次读取的字节数赋给byteread
                while ((byteread = randomFile.read(bytes)) != -1)
                {
                    System.out.write(bytes, 0, byteread);
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                if (randomFile != null)
                    try {
                        randomFile.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
            }
        }
    
    
    
        /**
         * 显示输入流中剩余的字节数
         * @param in
         */
        public static void showAvailableBytes(InputStream in)
        {
            try {
                System.out.println("当前字节流输入流中剩余的字节数为:"+in.available());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    
        public static void main(String[] args) {
            String fileName = "C:\\Users\\10412\\Desktop\\1.txt";       //文本文件
            //String fileName = "C:\\Users\\10412\\Desktop\\sp20161227_204413.png";     //图片文件
            //readFileByBytes(fileName);
            //readFileByChars(fileName);
            //readFileByLines(fileName);
            readFileBRandomAccess(fileName);
        }
    }
    

    文件追加内容

    AppendToFile.java

    package cn.zhisheng.io;
    
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    
    /**
     * 追加内容到文件尾部
     * Created by 10412 on 2016/12/29.
     */
    public class AppendToFile
    {
        /**
         * 第一种方法追加文件:使用RandomAccessFile
         * @param fileName 文件名
         * @param content   追加内容
         */
        public static void appendMethod1(String fileName, String content)
        {
            try {
                // 打开一个随机访问文件流,按读写方式
                RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
    
                // 文件长度,字节数
                long fileLength = randomFile.length();
    
                //将写文件指针移到文件尾
                randomFile.seek(fileLength);
                randomFile.writeBytes(content);
                randomFile.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    
    
        /**
         * 第二种方法追加文件:使用FileWriter
         * @param fileName  文件名
         * @param content   追加内容
         */
        public static void appendMethod2(String fileName, String content)
        {
            try {
                //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
                FileWriter writer = new FileWriter(fileName, true);
                writer.write(content);
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    
    
        public static void main(String[] args) {
            String fileName = "C:\\Users\\10412\\Desktop\\1.txt";       //文本文件
            String content = "new append!";
    
            //按方法1追加文件
    //        AppendToFile.appendMethod1(fileName, content);
    //        AppendToFile.appendMethod1(fileName, "\new append. 第一种方法\n");
    
            //按照方法2追加文件
            AppendToFile.appendMethod2(fileName, content);
            AppendToFile.appendMethod2(fileName, "\nnew append. 第二种方法\n");
    
    
            //显示文件内容
            ReadFromFile.readFileByLines(fileName);
        }
    }
    
    展开全文
  • Java 读取文件

    千次阅读 2018-12-07 17:17:13
    JAVA有多种读取文件的方式,其中比较深层次的原理在我的另外一篇文章分析过:JDK核心JAVA源码解析(5) - JAVA File MMAP原理解析,那么,我们有哪些方式去读取一个文件的内容呢? 1. 从ClassPath中读取文件 直接从...

    JAVA有多种读取文件的方式,其中比较深层次的原理在我的另外一篇文章分析过:JDK核心JAVA源码解析(5) - JAVA File MMAP原理解析,那么,我们有哪些方式去读取一个文件的内容呢?

    1. 从ClassPath中读取文件
    直接从项目的classpath(maven的话src/main/resource编译之后也会存在于classpath下)读取:

    InputStream inputStream = getClass().getClassLoader().getResourceAsStream("test.txt");
    StringBuilder resultStringBuilder = new StringBuilder();
    try (BufferedReader br
                 = new BufferedReader(new InputStreamReader(inputStream))) {
        String line;
        while ((line = br.readLine()) != null) {
            resultStringBuilder.append(line).append("\n");
        }
    }
    System.out.println(resultStringBuilder.toString());
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    注意一定要关闭BufferedReader等资源,这里用了JDK7try with resource的特性

    2. JDK7中的读取文件内容的方式
    利用Path对象省略了各种StreamReader,同时原生自带读取所有内容到内存的方法,在读取比较小的文件所有内容时我们可以考虑这么做:

    Path path = Paths.get(getClass().getClassLoader()
                    .getResource("test.txt").toURI());
    byte[] fileBytes = Files.readAllBytes(path);
    String data = new String(fileBytes);
    System.out.println(data);
    1
    2
    3
    4
    5
    3. JDK8中的读取文件内容的方式
    JDK8继续优化了这块的代码,引入了Stream相关框架,同时针对文件读取也能转化为Stream操作:

    Path path = Paths.get(getClass().getClassLoader()
                    .getResource("test.txt").toURI());
    try (Stream<String> lines = Files.lines(path)) {
        String data = lines.collect(Collectors.joining("\n"));
        System.out.println(data);
    }
    1
    2
    3
    4
    5
    6
    注意这里的Stream<String> lines需要关闭

    4. 利用FileUtils读取文件
    我们还可以使用commons-io包里面的读取文件相关类FileUtils:

    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.5</version>
    </dependency>
    1
    2
    3
    4
    5
    利用FileUtils我们连自愿关闭也可以不用关心:

    ClassLoader classLoader = getClass().getClassLoader();
    File file = new File(classLoader.getResource("test.txt").getFile());
    String data = FileUtils.readFileToString(file, "UTF-8");
    System.out.println(data);
    1
    2
    3
    4
    5. 利用IOUtils读取文件,URL等等
    我们还可以通过IOUtils读取各种输入流InputStream

    InputStream fis = getClass().getClassLoader().getResourceAsStream("test.txt");
    String data = IOUtils.toString(fis, "UTF-8");
    System.out.println(data);

    1
    2
    3
    4
    读取URL:

    URL urlObject = new URL("http://www.baidu.com");
    URLConnection urlConnection = urlObject.openConnection();
    InputStream inputStream = urlConnection.getInputStream();
    String data = IOUtils.toString(inputStream, "UTF-8");
    System.out.println(data);
    1
    2
    3
    4
    5
    读取Jar包中的文件(例如common-io的/META-INF/LICENSE.txt)

    Class clazz = IOUtils.class;
    //这里开头的/代表jar包根目录
    InputStream inputStream = clazz.getResourceAsStream("/META-INF/LICENSE.txt");
    String data = IOUtils.toString(inputStream, "UTF-8");
    System.out.println(data);
    --------------------- 
    作者:张哈希 
    来源:CSDN 
    原文:https://blog.csdn.net/zhxdick/article/details/84763329 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • Java读取文件内容和写入内容到文件

    万次阅读 2017-10-10 11:12:36
    Java读取文件内容方法和写入内容到文件方法

    Java读取文件内容方法和写入内容到文件方法

    /**
    	 * One.txt中的数据如下:
    	 * 1
    	 * 2
    	 * 3
    	 * 4
    	 * 5
    	 * -----------------
    	 * 读操作方法
    	 */
    	@Test
    	public void readFileToList2() {
    		File file = new File("C:\\Users\\Desktop\\One.txt");
    		System.out.println("文件绝对路径 :"+file.getAbsolutePath());
    		List<String> listStr = new ArrayList<String>();
    		BufferedReader br = null;
    		String str = null;
    		try {
    			br = new BufferedReader(new FileReader(file));
    			while ((str = br.readLine())!= null) {
    				listStr.add(str);
    			}
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		}catch (IOException e) {
    			e.printStackTrace();
    		}
    		System.out.println(listStr);
    		writeListToFile(listStr);// 调用写操作方法
    	}
    
    	/**
    	 * 实现写操作方法
    	 */
    	private void writeListToFile(List<String> listStr) {
    		File file = new File("C:\\Users\\Desktop\\Azzan.txt");// 要写入的文件路径
    		if (!file.exists()) {// 判断文件是否存在
    			try {
    				file.createNewFile();// 如果文件不存在创建文件
    				System.out.println("文件"+file.getName()+"不存在已为您创建!");
    			} catch (IOException e) {
    				System.out.println("创建文件异常!");
    				e.printStackTrace();
    			}
    		} else {
    			System.out.println("文件"+file.getName()+"已存在!");
    		}
    		
    		for (String str : listStr) {// 遍历listStr集合
    			FileOutputStream fos = null;
    			PrintStream ps = null;
    			try {
    				fos = new FileOutputStream(file,true);// 文件输出流	追加
    				ps = new PrintStream(fos);
    			} catch (FileNotFoundException e) {
    				e.printStackTrace();
    			}
    			String string  = str + "\r\n";// +换行
    			ps.print(string); // 执行写操作
    			ps.close();	// 关闭流
    			
    		}
    		
    		System.out.println("文件写入完毕!");
    	}

    展开全文
  • Java读取文件最后n行

    千次阅读 2019-07-29 11:43:07
    Java读取文件最后几行 项目里需要读取最新的日志,可是最新的日志都在文件的最后几行,所以有了这个需求。 百度之后先研究了别人的代码,感觉一是逻辑不太好理解,二是代码偏向于测试,没有办法哪来就用。 所以自己...
  • Java读取文件的方法

    万次阅读 2018-10-21 16:32:11
    读取二进制文件 读取二进制文件,并存入byte数组,如算法训练模型的二进制模型。 public byte[] readFromByteFile(String pathname) throws IOException{ File filename = new File(pathname); ...
  • java读取文件及文件流

    千次阅读 2014-03-11 17:47:24
    java读取文件或是文件流的代码,涵盖了读取jar文件中的文件流,网络文件流等,有些读取方式为了防止编码转换带来的问题,采取了动态byte[]的方式读取,源码如下 : import java.io.BufferedInputStream; import ...
  • java 读取文件 乱码

    千次阅读 2015-10-15 16:49:30
     我们在开发中经常会遇到java读取文件乱码的问题,也许快速的百度能解决问题,但只有掌握了内部原理,我们才算真正的“解决”掉问题了。 示例: 1 b.txt中只有一个字“卡”,保存编码格式为gbk,查看输出结果 ...
  • Java读取文件的内容

    千次阅读 2019-04-27 22:12:26
    Java读取文件的内容 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术:My Eclipse 10 ,Java 作者:陈显其 撰写时间:2019/4/25 ~~~~~~~~~~~~~~~~~~~~~~~~~~~...
  • Java读取文件操作, 输入输出流的用法:FileInputStream、FileOutputStream类
  • java读取文件时,判断文件类型与后缀是否一致,若是人文手动修改文件后缀,将excel改成doc,那这时候校验出来的结果应该是文件格式与后缀不一致这个结果。(不使用只判断后缀名的方式)
  • java读取文件最后N行

    千次阅读 2015-01-28 09:57:26
    java读取文件最后N行 源代码下载地址:http://www.zuidaima.com/share/1550463669226496.htm
  • JAVA读取文件里面部分汉字内容乱码

    千次阅读 2018-05-18 19:47:25
    JAVA读取文件里面部分汉字内容乱码读取一个txt文件,到代码中打印出来,发票有部分汉字的内容是乱码的。我开始的方式是这样的, 如下,这是完全错误的,汉字是两个字节的,如果每次读固定个字节,可能会把汉字截断。...
  • Java读取文件转String

    千次阅读 2019-11-25 16:30:40
    Java读取文档转String Java读取文档转String 自己总结的Java读取文档转String的两种方法。 方法一 String src = "D:\\VsCode\\11.18\\anputest.js"; File file = new File(src); String js = FileUtils.readFile...
  • Java读取文件MD5的两种方案

    万次阅读 2014-04-04 16:02:35
    最近要弄一下Java读取文件MD5,注意这里是小文件,网上找了一下,有两种解决方案,一种是用MessageDigest来实现,另种是用org.apache.commons.codec.digest来实现,代码如下: package cdm; import java.io.File;...
  • java读取文件 每行首字丢失问题

    千次阅读 2016-06-07 21:36:05
    java读取文件 每行首字丢失问题 Posted on 2011-12-15 20:05 bingfeng 阅读(736) 评论(0) 编辑 收藏 在读取文件的时候需要判断是否到结尾,因此在while循环条件中有几种判断条件。 1.br.read()返回...
  • Java 读取文件、写入文件

    千次阅读 2018-12-20 10:31:55
    提示:下面是基于jdk1.7的写法(自动关闭IO...读取文件 /** * 获取文件内容 * @param file 文件 * @return 内容 */ public static String getText(File file){ try(FileInputStream fis = new FileInputStr...
  • import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWrite...
  • Java读取文件 利用MappedByteBuffer进行缓冲,这样可以保证边读取大文件,边进行处理 package sean; import java.io.ByteArrayInputStream; import java.io.File; import java.io.RandomAccessFile; import ...
  • Java读取文件指定编码

    千次阅读 2018-11-19 16:17:49
    java读取txt文件如果不指定编码,那么读出来的数据可能就是一串乱码。 解决方案 String content=null; BufferedReader bufferedReader= new BufferedReader( new InputStreamReader( new FileI...
  • Java读取文件的四种方式

    万次阅读 2018-09-18 14:52:46
    按字节读取文件内容 按字符读取文件内容 按行读取文件内容 随机读取文件内容    public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件...
  • Java读取文件内容比较

    2017-04-24 08:55:54
    Java从txt文件读取字符串内容,读取出来进行比较,相同的字符却不能相等,比如从txt读取出string="123",但是读出来后用它比较如if(string=="123") { } if判断是false,望大神指教
  • Java读取文件内容并排序 写这篇博客的初衷是由于参加了一次笔试但未完成。网上查资料但很多代码我发现多多少少都有些问题,所以自己重新写了一下代码。一方面是为了自己,希望下次出现类似的问题能够迅速解决,另一...
  • 首先,用java读取文件和写入文件都其实很简单,但重点是修改文件。 修改可以为替换、删除、新增字符。所以不能用inputstream那种字节流的方式,以下例子使用BufferedReader的方式来读取每行的字符数据。 完成一个...
  • JAVA 读取文件转换字符集

    千次阅读 2017-09-19 16:57:37
    JAVA 读取TXT文件 转换字符集
  • Java读取文件内容

    千次阅读 2018-08-30 14:19:32
    //获取文件输入流 File file = new File(&quot;D:\\abc.txt&quot;); InputStream inputStream = new FileInputStream(file); //读取输入流的内容 byte[] filecontent = new byte[1024]; inputStream.read(fi...
  • 原文:java读取文件并获得文件编码,转换为指定编码的工具类代码 源代码下载地址:http://www.zuidaima.com/share/1902677591215104.htm package com.zuidaima.util; import java.io.BufferedReader; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,665
精华内容 23,866
关键字:

java读取文件

java 订阅