`
lizhuang
  • 浏览: 904227 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

解析文件去标点

阅读更多

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ReadTxtFile {
	
	public static void main(String[] args){
		String raw = ReadTxtFile.readTxtFile("/Users/yourname/Downloads/a.txt");
		String noNumRaw = raw.replaceAll("\\d+", "").replaceAll(",", "");
		//String noRaw = noNumRaw.replaceAll("[,|\\\"]", "\t").replace("[\t|\n]", "\r\n");
		//String result = noRaw.replaceAll("[\\n]", "").replaceAll("\\s", "\n").replaceAll("(?m)^\\s+", "");

		//String result = noRaw.replaceAll("^\\n", "").replaceAll("\\t", "");
		//System.out.println(result);
		String regex = "\\\"([^\\\"]+)\\\"\\b";
		Matcher m = Pattern.compile(regex).matcher(noNumRaw);
		String result = m.replaceAll("$1\r\n");
		result = result.replaceAll("\\\"\\\"", "\r\n");
		result = result.replaceAll("\\\"", "");
		//m = Pattern.compile("^[\u4E00-\u9FFF]+").matcher(result);
		//result = m.replaceAll("");
		
		System.out.println(result);
		
		try {
			ReadTxtFile.writeFromBuffer(result, "/Users/yourname/Downloads/b.txt");
		} catch (IOException e) {
			
			e.printStackTrace();
		}
	}
	
	public static void writeFromBuffer(String str, String outFileName) throws IOException {
        OutputStream os = new FileOutputStream(outFileName);
       PrintStream ps = new PrintStream(os);  
       ps.print(str);
       
       PrintWriter writer = new PrintWriter(new OutputStreamWriter(os));
       writer.flush(); 
       os.close();
   }

	@SuppressWarnings("finally")
	public static String readTxtFile(String filePath) {
		StringBuilder sb = new StringBuilder();

		try {
			//String encoding = "GBK";
			File file = new File(filePath);
			if (file.isFile() && file.exists()) { // 判断文件是否存在
				InputStreamReader read = new InputStreamReader(
						new FileInputStream(file));// 考虑到汉字编码格式
				BufferedReader bufferedReader = new BufferedReader(read);
				String lineTxt = null;
				while ((lineTxt = bufferedReader.readLine()) != null) {
					System.out.println(lineTxt);
					sb.append(lineTxt);
				}
				read.close();
			} else {
				System.out.println("找不到指定的文件");
			}
		} catch (Exception e) {
			System.out.println("读取文件内容出错");
			e.printStackTrace();
		} finally {
			return sb.toString();
		}

	}
}

分享到:
评论

相关推荐

    自动解析文件,不用数据库自动将txt中进行单词筛选

    本文将深入探讨如何实现一个自动解析文件的系统,特别是针对包含短语和单词的TXT文件进行单词筛选,无需依赖数据库的辅助。 首先,我们需要理解“解析文件”这一概念。文件解析是指将文件内容分解成可处理的数据...

    Java读取TIFF文件

    TIFF(Tagged Image File Format)是一种常见的图像文件格式,广泛用于专业图像编辑和扫描领域,因为它支持多种色彩模式和压缩算法。本篇文章将深入探讨如何使用Java来读取TIFF文件,并获取其尺寸——即图像的宽度...

    itext-2.1.7源码包以及 解决iText生成pdf时中文标点存在行首问题的修改class

    **压缩包子文件的文件名称列表解析:** 1. `DefaultSplitCharacter.class`:这是Java字节码文件,代表一个类。在iText中,`DefaultSplitCharacter`可能负责决定何时在文本中分割行。可能这个类被修改以更妥善地处理...

    2017全国中考试题解析分类汇编06:标点.docx

    根据给定文件的信息,我们可以总结出以下几个关于标点符号使用的关键知识点: ### 1. 分号与破折号的区分使用 #### 示例题目解析: **【2017•甘肃兰州】** - **题目背景**:该题源自杨绛的散文《老王》,考察考生...

    解决android文本组件行首不能为标点问题

    如果你手头有一个名为"解决textview行首不能为标点"的压缩包文件,里面可能包含了实现上述解决方案的示例代码或详细步骤,可以参考其中的代码进行实践。记得在使用任何外部代码资源时,确保理解其工作原理,并遵守...

    莫尔斯代码解析器析到txt文件

    这个项目"莫尔斯代码解析器解析到txt文件"提供了一个程序,能够将接收到的莫尔斯代码转换成可读的文本格式,并保存为TXT文件。这种功能对于理解和分析原始的莫尔斯电码信息非常有用,尤其是对于那些对无线电通信感...

    替换标点符号(源码)

    从给定的文件标题、描述、标签以及部分内容来看,这段代码旨在实现一个功能:即替换或移除特定的标点符号。尽管描述中提到“代码并不是很完美”,但它提供了一个基础框架,可用于理解和实现标点符号替换的基本逻辑。...

    js解析多种写法的lrc歌词

    综上所述,解析多种写法的LRC歌词需要理解其文件格式,运用正则表达式进行高效解析,并处理自定义标签和实现每字同步。在JS中,这涉及到字符串操作、正则匹配、数据结构设计以及实时同步等多个技术点。通过以上步骤...

    文件检索源码,可以包括文件内容(类似windows文件查找)

    读取文件内容后,我们需要对文本进行处理,可能包括去除标点符号、空格、转义特殊字符等,以便进行关键词匹配。常见的文本处理方法有正则表达式、字符串分割等。关键词匹配可以使用简单的字符串包含检查,或者使用...

    C 将Txt文件转换为Dat文件代码实例.rar

    2. **数据解析**:在读取TXT文件后,需要解析其内容。这可能包括分割行、处理标点符号、识别数据结构等。如果是固定格式的TXT文件,解析相对简单;如果内容复杂,可能需要正则表达式或其他高级方法。 3. **数据转换...

    二进制文件与文本的区别

    此外,跨平台时需要注意,不同操作系统可能使用不同的字节顺序(如大端序和小端序),这会影响二进制文件的解析,而文本文件则相对独立于硬件架构。 总的来说,文本文件适合于人机交互,易于阅读和修改,但占用更多...

    用C语言读取汉字库文件,找出汉字信息的示例!

    // 解析文件,填充characters数组... ``` 最后,为了找出特定汉字的信息,我们需要遍历这个数组,或者建立一个快速查找表,如哈希表或二叉树,以便高效地按编码查找汉字。 请注意,这个过程可能涉及到版权问题,...

    文本文件和二进制文件区别读写.rar

    文本文件的编辑器可以轻松打开并查看其内容,因为它们显示的是我们熟悉的字母、数字和标点符号。 二进制文件则不同,它不遵循字符编码,而是直接存储原始数据,包括整数、浮点数、结构体或其他复杂的数据类型。二...

    C++读取一文本文件并进行单词统计结果

    以下是一份详细的知识点解析: 1. **文件I/O操作**:C++标准库提供了`fstream`库来进行文件的读写操作。首先,需要创建一个`ifstream`对象来打开文本文件。例如: ```cpp std::ifstream inputFile("article.txt")...

    单片机输出生成EXECL文件

    由于单片机通常不具备直接生成或解析复杂文件格式如Excel (.XLS) 的能力,我们可以采用一种简单的替代方法,即生成类似CSV(逗号分隔值)的文本文件,然后由PC端的软件(如Excel)读取并转换为正式的Excel格式。...

    java读写文件

    最后,对于复杂的文件操作,例如解析XML或JSON,Java还提供了如`javax.xml.parsers.DocumentBuilderFactory`和`com.google.gson.Gson`等库。这些库能帮助开发者高效地处理特定格式的文件。 总的来说,Java的文件...

    通用版2020年高中语文二轮复习专题限时集训11词语蹭标点连贯一含解析20191213179

    这个文件主要涉及的是高中语文复习的内容,特别是针对词语、病句、标点和连贯性四个方面的训练。以下是这些知识点的详细说明: 1. **词语**:文段中提到了词语的选择,如“相映成趣”与“交相辉映”、“披星戴月”...

    ais系统中控制显示终端数据的解析

    例如,程序"zhuangma.c"可能就是用来实现这一转换功能的C语言源代码文件,其中包含了处理AIS数据解析的算法和逻辑。 在实际编程中,为了处理6 BIT ASCII码,我们可以创建一个映射表,将每个6 BIT的值映射到对应的7...

    词频统计 c++ 文件读取文章

    记得在每个单词及其频率之间添加适当的分隔符,以便后续解析。 总结来说,这个项目涵盖了C++文件操作、字符串处理、哈希表、堆排序和文件写入等多个知识点。通过实践这样的项目,可以深入理解这些概念,并提高编程...

    【精选】最新最全Matlab考试试题库答案解析2023.pdf

    标点符号;%——用来表示该行为注释行。可以使命令行不显示运算结果。** - **解析:** - `;`:在MATLAB中用于分隔命令或表达式的元素。当用于命令末尾时,它可以防止MATLAB在命令窗口中显示计算结果。 - `%`...

Global site tag (gtag.js) - Google Analytics