`
lgd_java2eye
  • 浏览: 189577 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Scanner读取文件和StringBuffer读取文件

    博客分类:
  • java
阅读更多

Scanner扫描器读取文件注意事项:

    1:Scanner读取文件的时候若读取的文件是utf-8格式的html文件的话,在构造Scanner对象的时候一定要设置成为utf-8文件的格式,要不读取的时候读取不出来或是乱码。

    2:读取文件的路径在当前用户的路径下面,关于路径的分隔符(System.getProperty("user.home")+"/testemail.htm")用反斜杠"/"表示或是用File.separator表示都能在windows环境下

        和unix环境下找到路径,不能用正斜杠"\"的方式来分隔,因为正斜杠是windows操作系统的分隔符,在unix路径下不能用其符号分隔,在java中可以用反斜杠"/"来统一表示文件路径的分隔符或是File.separator

        分隔都可以。

ScannerTest.java:

package com.skyon.gd.test;

import java.util.Scanner;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;

/**
 * 
 * @author sandy 两种方式读取文件一种方式是直接用BufferedReader来进行读取,另一种方式是用Scanner扫描器进行读取操作
 */
public class ScannerTest {
	public static void main(String[] args) {
		//readFile1();
		readFile2();
	}

	private static void readFile1() {
		BufferedReader reader = null;
		try {
			// BufferedReader reader=new BufferedReader(new
			// FileReader(System.getProperty("user.home")+"/testemail.htm"));
			// 通过InputStreamReader的方式进行文件的去读,并且设置按照什么样的编码格式进行文件读取
			reader = new BufferedReader(new InputStreamReader(
					new FileInputStream(System.getProperty("user.home")
							+ "/testemail.htm"), Charset.forName("utf-8")));
			String line = "";
			int i = 0;
			try {
				while ((line = reader.readLine()) != null) {
					System.out.println(line);
					i++;
				}
				System.out.println("一共有:" + i + "行");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

	private static void readFile2() {
		File file = new File(System.getProperty("user.home") + "/testemail.htm");
		Scanner scanner = null;
		try {
			// 按照utf-8的字符编码的格式进行扫描处理,若该文件的编码不是utf-8的编码方式则扫描出来的结果将0,也就是扫描不出来
			// 假设test.txt的文件编码格式是gbk的编码方式,若按照utf-8的编码方式进行扫描的话,则扫描结果为0
			scanner = new Scanner(file, "utf-8");
			int i = 0;
			while (scanner.hasNextLine()) {
				StringBuffer sb = new StringBuffer();
				String s = sb.append(scanner.nextLine()).toString();
				System.out.println(s);
				i++;
			}
			System.out.println("一共有:" + i + "行");
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			scanner.close();
		}

	}

}

 

2
0
分享到:
评论

相关推荐

    java读取文件

    它使用`HSSFWorkbook`类来读取工作簿,然后遍历所有的工作表、行和单元格,将数据收集到一个`StringBuffer`对象中。需要注意的是,示例代码中使用了`HSSFWorkbook`,这是针对.xls格式的;如果处理.xlsx文件,则应...

    java文件读取方法

    `BufferedReader`逐行读取文件内容并存储到`StringBuffer`中,最后返回整个文件内容。 2. **创建目录**: `createFolder(String folderPath)` 方法接受一个路径字符串,尝试创建一个新目录。它首先将路径转换为`...

    java编写的控制台文件管理器

    这可能使用到`BufferedReader`读取文件,`StringBuffer`或`StringBuilder`处理内容,然后用`PrintWriter`或`FileWriter`写回。 4. **文件查找**:文件查找可能通过遍历目录结构实现,结合`File.listFiles()`返回...

    java中文件操作大全

    - **读取文件**:可以使用`BufferedReader`或`Scanner`类来读取文件内容。 - **删除文件**:`File`类的`delete()`方法可以用来删除文件。 - **移动/重命名文件**:使用`Files.move()`方法可以移动或重命名文件。 - *...

    java编写的记事本源码

    - `Scanner`类也可以用来读取文件,特别适合处理非结构化的文本数据。 2. **写入文件(Write File)**: - 文件写入通常使用`FileWriter`或`BufferedWriter`类。`FileWriter`负责将字符写入文件,`BufferedWriter...

    java 根据参数导出txt文件.rar

    在Java中,可以通过`java.util.Scanner`从控制台读取用户输入,或者通过`args`数组获取命令行参数。 8. **字符串处理**:在构建输出内容时,你可能需要对字符串进行格式化、拼接等操作。Java提供了丰富的字符串处理...

    Java常用系统类的使用

    - 示例代码展示了如何从控制台获取用户输入的数字,并通过 `Scanner` 读取文件内容。 在实际编程中,这些类的组合使用能帮助我们高效地处理文本数据、实现文件的读写以及用户输入的处理。了解并熟练掌握这些基本的...

    java file

    这种方法的优点是它可以处理不同类型的文件,只要数据能被读取和写入即可。确保目标文件存在或创建新文件是很重要的步骤。 3. 写文件: - `PrintStreamDemo`方法展示了如何使用`PrintStream`写文件。`PrintStream`...

    javaFile操作大全

    在Java中,复制文件通常使用文件输入流(`FileInputStream`)和文件输出流(`FileOutputStream`)的组合来实现。在提供的代码中,定义了一个`copyFile`方法,它接受源文件路径和目标文件路径作为参数。方法内部首先创建...

    java_text_soft.zip_Soft!

    2. **Scanner类**:Scanner是Java提供的一个强大工具,可以方便地从各种数据源(如文件、系统输入)读取文本数据,支持各种数据类型的解析。 3. **正则表达式**:Java中的Pattern和Matcher类提供了强大的正则表达式...

    6-学号-姓名--IO程序设计-日记本.docx

    当用户选择编写日记时,我们使用 Scanner 对象来读取用户的输入信息,包括姓名、天气、标题和内容。然后,我们使用 LocalDate 对象来获取当前日期,并将其格式化为字符串。接着,我们创建了一个名为 Diary 的对象,...

    mread-master.zip_mread-master_zip

    【mread-master.zip_mread-master_zip】是一个包含`mread-master`项目的压缩文件,这个项目可能是一个关于文本读取和处理的开源软件或者库。在分析这个项目之前,我们需要了解`teststringbuffer`指的是什么。通常,`...

    java数据流

    文件的读写则使用前面提到的流类,如`FileInputStream`和`FileOutputStream`。 8. 链接流: Java允许流的链接,如`PipedInputStream`和`PipedOutputStream`可以连接两个流,实现数据的内部传递。 9. 标签中的...

    Java语言程序设计-基础篇-中文ppt-第九章.ppt

    在Java编程中,字符串是程序设计中不可或缺的一...学习这些内容后,你将有能力解决涉及字符串处理和文件I/O的常见问题,如替换文本文件中的特定字符。理解和熟练运用这些知识点对于任何Java程序员来说都是至关重要的。

    java 字符串 排序 源代码

    可以使用JUnit等测试框架来编写测试用例,检查字符串排序和文件操作是否符合预期。 10. **性能优化**:对于大量数据,可能需要考虑使用更高效的排序算法,如快速排序或归并排序,以减少排序时间。同时,对于文件...

    二、基础程序设计(22节).pdf

    常用类和集合是JavaSE中的类和集合,用于处理各种数据和操作,包括Object、String、Math、Scanner、Date、Random、SimpleDateFormat、Calender、StringBuffer、Arrays、ArrayList、LinkedList、Vector、HashSet、...

    Java记事本实现记事本的基本功能

    可以使用`BufferedReader`或`Scanner`类来读取文件内容,并将其加载到程序的内存中,以便用户可以在记事本界面上查看和编辑。需要注意的是,要处理可能的文件不存在异常。 “复制”和“粘贴”操作是文本编辑器的...

    java简单记事本代码合集

    - `Scanner`类可用于从文件中读取用户输入,如打开、保存和查找文件。 4. **事件处理** - 记事本程序中的按钮点击、菜单选择等都需要监听用户操作。这通常通过实现`ActionListener`接口或使用匿名内部类完成。 -...

Global site tag (gtag.js) - Google Analytics