java中从txt文档中提取出来的内容可以在控制台输出,但不能写入到另一个txt文档中
 import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TQ {
public static void main(String[] args) {

        String myRegex1="[0-9.,]+([\\s]?)[%|元|万元|亿元|美元|英镑|千股|万股|千万股|亿股|米|千米|万千米|里|公里|千里|万千里|斤|千克|吨|列|个|项|件|马力|家|辆|次|户|人次|百人次|千人次|万人次]+";//金额
        String myRegex2="([,。;?!])";
        String myRegex3="([0-9.,]+$)+";
        //String myRegex4="[^(元|万元|亿元|美元|英镑|千股|万股|千万股|亿股|米|千米|万千米|里|公里|千里|万千里|斤|千克|吨|列|个|项|件|马力|家|辆|次|户|人次|百人次|千人次|万人次)..]";
        //String myRegex3="[元|万元|亿元|美元|英镑|千股|万股|千万股|亿股|米|千米|万千米|里|公里|千里|万千里|斤|千克|吨|列|个|项|件|马力|家|辆|次|户|人次|百人次|千人次|万人次]+";

        File inFile = new File("G:/Users/liuyang/Desktop/PDF2TXT//中车 【601766.SH】.txt"); // 读取的txt文件
        File outFile = new File("F://TQ.txt");

        String inString = ""; 
        String nextString = ""; 

        java.util.regex.Pattern p1=java.util.regex.Pattern.compile(myRegex1);
        java.util.regex.Pattern p2=java.util.regex.Pattern.compile(myRegex2);
       // java.util.regex.Pattern p3=java.util.regex.Pattern.compile(myRegex3);
        //java.util.regex.Pattern p4=java.util.regex.Pattern.compile(myRegex4);

        try {
               BufferedReader reader = new BufferedReader(new FileReader(inFile));//
           BufferedWriter writer = new BufferedWriter(new FileWriter(outFile));

               while((inString=reader.readLine())!=null){
                   Pattern pattern = Pattern.compile(myRegex3);
                   Matcher matcher = pattern.matcher(inString);

                   if(matcher.find()){

                       nextString=reader.readLine();
                       String ljString=inString+nextString;
                       java.util.regex.Matcher m1=p1.matcher(ljString);
                      while(m1.find()){
                          String matchedText=m1.group();
                          //System.out.println(matchedText);
                          String tmpString=ljString+"$";
                          String zhString=tmpString.substring(tmpString.indexOf(matchedText),tmpString.indexOf("$"));
                          String Text=matchedText.replace(",", "");
                          zhString=zhString.replace(matchedText, Text);

                        java.util.regex.Matcher m11=p2.matcher(zhString);
                        if(m11.find()){
                            zhString=zhString.replace("!", "#").replace(",", "#").replace("。", "#").replace("?", "#").replace(";", "#");
                            String zqString=ljString.substring(0,ljString.indexOf(matchedText));

                            java.util.regex.Matcher m111=p2.matcher(zqString);
                             if(m111.find()){
                                zqString=zqString.replace("!", "@").replace(",", "@").replace("。", "@").replace("?", "@").replace(";", "@");
                                ljString=zqString+zhString;
                                String GJC=ljString.substring(ljString.indexOf("@")+1,ljString.indexOf("#"));
                                GJC=GJC.replace("@", "");
                                System.out.println(GJC+"(ljGJC)");  
                                writer.write(GJC);
                                writer.newLine();
                             }//m111


                        }//m11
                       }//m1

                   }//if(inString以数字结尾)
                   else{
                       java.util.regex.Matcher m1=p1.matcher(inString);
                       while(m1.find()){
                           String matchedText=m1.group();
                           String tmpString=inString+"$";
                           String zhString=tmpString.substring(tmpString.indexOf(matchedText),tmpString.indexOf("$"));
                           String Text=matchedText.replace(",", "");
                           zhString=zhString.replace(matchedText, Text);
                           java.util.regex.Matcher m2=p2.matcher(zhString);
                           if(m2.find()){
                             zhString=zhString.replace("!", "#").replace(",", "#").replace("。", "#").replace("?", "#").replace(";", "#");
                             String zqString=inString.substring(0,inString.indexOf(matchedText));
                             java.util.regex.Matcher m3=p2.matcher(zqString);
                             if(m3.find()){
                                zqString=zqString.replace("!", "@").replace(",", "@").replace("。", "@").replace("?", "@").replace(";", "@");
                                inString=zqString+zhString;
                                String GJC=inString.substring(inString.indexOf("@")+1,inString.indexOf("#"));
                                GJC=GJC.replace("@", "");
                                System.out.println(GJC+"(GJC)");  
                                writer.write(GJC);
                                writer.newLine();
                             }//m3
                             else{
                                zqString="@"+zqString;
                                inString=zqString+zhString;
                                String GJC=inString.substring(inString.indexOf("@")+1,inString.indexOf("#"));
                                GJC=GJC.replace("@", "");
                                System.out.println(GJC+"(GJC)"); 
                                writer.write(GJC);
                                writer.newLine();
                             }
                           }//m2
                           else{
                             nextString=reader.readLine();
                             String ljString=zhString+nextString;
                             java.util.regex.Matcher m21=p1.matcher(ljString);
                             while(m21.find()){
                                String matchedText21=m21.group();
                                String tmpString21=ljString+"$";
                                String zhString21=tmpString21.substring(tmpString21.indexOf(matchedText21),tmpString21.indexOf("$"));
                                String Text21=matchedText21.replace(",", "");
                                zhString21=zhString21.replace(matchedText21, Text21);
                                java.util.regex.Matcher m211=p2.matcher(zhString21);
                                if(m211.find()){
                                    zhString21=zhString21.replace("!", "#").replace(",", "#").replace("。", "#").replace("?", "#").replace(";", "#");
                                    String zqString21=ljString.substring(0,ljString.indexOf(matchedText21));
                                    java.util.regex.Matcher m2111=p2.matcher(zqString21);
                                    if(m2111.find()){
                                        zqString21=zqString21.replace("!", "@").replace(",", "@").replace("。", "@").replace("?", "@").replace(";", "@");
                                        ljString=zqString21+zhString21;
                                        String GJC21=ljString.substring(ljString.indexOf("@")+1,ljString.indexOf("#"));
                                        GJC21=GJC21.replace("@", "");
                                        System.out.println(GJC21+"(GJC21)");
                                        writer.write(GJC21);
                                        writer.newLine();
                                    }
                                    else{
                                        zqString21="@"+zqString21;
                                        ljString=zqString21+zhString21;
                                        String GJC21=ljString.substring(ljString.indexOf("@")+1,ljString.indexOf("#"));
                                        GJC21=GJC21.replace("@", "");
                                        System.out.println(GJC21+"(GJC21)"); 
                                        writer.write(GJC21);
                                        writer.newLine();
                                    }
                                }
                             }
                           }
                       }//m1
                    //System.out.println("字符串sa不是以数字结尾的");
                   }//else(inString不以数字结尾)
               }//while(总)
               reader.close();
               writer.close();
               }
           catch (FileNotFoundException ex) {
                 System.out.println("没找到文件!");
             } catch (IOException ex) {
                 System.out.println("读写文件出错!");
             }

}
}

1个回答

检查下文件的路径、权限。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Loadrunner 输出内容到TXT文档
我的测试:   int MyFile2; int LoginRes = 1; //设置文档的位置 char *addr1="E://myPass1101.txt"; //是否输出的判断条件:请求是否返回success LoginRes = web_reg_find("Text=success",LAST); web_url("login.jsp", ...
数据库写入txt文档
数据库写入txt文档,把数据库中查询的内容写入text文本文档中
.txt文档的读取与写入
一个TXT文档,我想把他设计成如下格式rnrn[USR]rnUSR1rnUSR2rn[END]rnrn[TIME]rnTIME1rnTIME2rnTIME3rn[END]rnrn也就是这个文档需要存储USR和TIME的相关信息,用户可以写入并读取该文档的内容,问题是在写入的时候,不知道写在哪里。比如现在要插入一个TIME4,实现的步骤我想应该是首先打到[TIME]这一大项,再在[END]前插入。说简单点也就是要实现在一个.txt文档里先找到插入位置,再在这个位置插入的功能。rn我试过用STREAMWRITER和STREAMREDEAR不行,FILESTREAM好像也不可行。rn请问高手如何解决?或者有其他更好的方法,我是想用来存储一些简单信息,不想用到数据库,也不想有多个.txt?
TXT文档写入与读取
TXT文档写入与读取 基于对话框 TXT文档写入与读取 基于对话框 TXT文档写入与读取 基于对话框
winform写入txt文档
我用winform生成错误文档 txt格式rnrn问题:我要每一天只生成一个文档 即---今天7点报错生成错误文档,9点时又报错现在就不重新创建文档了,在原有文档后面继续写入rnrn例:2011-3-14-7:00rn 错误rnrn 2011-3-14-9:00rn 错误rnrn 2011-3-14-11:00rn 错误rnrn这样继续往下写
Txt文档的固定写入?
请教,我怎么在Txt文档固定行中写入数据,Txt文档如下:rn5224rn魏体rnredrn我想把魏体改成宋体,该怎么弄啊
将目录中txt文档若干行写入另一个txt文件中
txt 文档内容格式如下 CPUUsageSY: 0.102456422845 MemTotal: 32767.4648438 Disk_Root_Used: 38.6357421875 MemFree: 30094.15625 Disk_Root_Size: 599.655273438 Disk_Root_Avail: 561.01953125 CPUUsageUS: 0.07232218083...
提取txt文档中的时间输出到另一个txt中
我有一个txt文档,每行的最后都是一个时间,怎么才能把最后的时间提取出来输出到另外一个txt文件里呢,谢谢!!rntxt的格式是这样的:rn60730027 6320951896 @thediscovietnam coo. thanks. just dropped you a line. 2009-12-03 18:41:07rn60730027 6320673258 @thediscovietnam shit it ain't lettin me DM you back, what's your email? 2009-12-03 18:31:01rnrn只需要提取时间,不需要日期.
Java读写txt文档内容
向txt文档中写入内容: FileOutputStream fos = new FileOutputStream("E:\\学习资料\\Java\\e.txt"); OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); osw.write("我的博客"); o
TXT文档的输出问题
写的代码最后需要输出到txt文档,但是txt文档不能识别一些特殊字符。前面的都是可以的,在电脑上调试的时候,在cmd下是可以显示的,但是一旦输出到txt文档就不能识别,该怎么改,求大神rn#include rn#include rn#include rn#include rn#includernusing namespace std;rnint main() rn rn float number;rn float n[10000];rn int N[10000];rn int N_2[100];rn int N_3[100];rn int N_4[100];rn int len_N_2;rn int len_N_3;rn int cnt = 0;rn char s[1000];rn int srd_1[300];rn int srd_2[300];rn for(int i = 0;i < 256;i++)rn rn srd_1[i]=255-i;rn srd_2[i]=(i+128)%256;rn rn FILE *fp1,*fp2; rn fp2 = fopen("out.txt", "w+");rn if(NULL == (fp1 = fopen("in.txt", "r"))) rn rn printf("error\n"); rn exit(1); rn rn while(fscanf(fp1," %s %f",s,&number)!=EOF)N[cnt++]=(int)(number*200);rn int sum =0;rn int ct = 0 ;rn while (sum+9 <= cnt)rn rn rn for(int i=0;i < 8;i++)rn rn N_2[i]=N[sum+i+1]-N[sum+i];rn rn int num = 0;rn rn for(int i = 0;i < 8; i++)rn rn if(N_2[i] < 0)rn rn N_2[i]=-N_2[i];rn num=(num+1)*2;rn rn else num*=2;rn rnrn num/=2;rn int count = 0;rn for(int i=0;i < 8;i+=2)rn rn if(N_2[i]<10&&N_2[i+1]<10||(N_2[i]==0&&N_2[i]<100))rn rn N_3[count++] =N_2[i]*10 + N_2[i+1];rn rn elsern rn N_3[count++] = N_2[i]+100;rn N_3[count++] = N_2[i+1]+100;rn rn rn for(int i=0;i
输出文档(txt)的行号
import java.io.*;/** * Created by Administrator on 2017/3/30. */ class LineNum extends BufferedReader{ int count = 1; public LineNum(Reader in) { super(in); } //复写BufferedReade
txt文档内容批量替换
TXT文档的内容可以批量选择替换,替换内容更多
从txt文档读入数据
有一个txt文档,里面的数据如下:rnID=194 rnx=3277 rny=2183 rnb=3 rnp=0rnrnID=195 rnx=3277 rny=2183 rnb=3 rnp=0rn。。。。。。总共大概有几千组rn我定义的数据结构如下rn struct PinData//自定义结构体rn rn int ID;rn int x;rn int y;rn int b;rn int p;rn ;rn PinData pointdata[10000];//数据存储每个点的信息rn我应该怎样只读取其中的数字?rn把ID对应的数字读入IDrn把x对应的数值读入x?rn以此类推
pyqt5之将textBrowser的内容写入txt文档
try: StrText = self.textBrowser.toPlainText() qS = str(StrText) f = open('/***/test.txt', 'w') print(f.write('{}'.format(qS))) f.cl...
如何将大量内容快速写入TXT文档
现有大量数据要写入TXT文档,数据通过一个循环组合成了一个字符串。然后要写入部分文档rn我先行的C#代码是rn for (int i = 0; i < Records.Count; i++)rnrn string info = string.Empty;rn info = GetRecordsInfo(Records[i]);rn File.AppendAllText(filename, info);rnrn其中filename为文件名,info通过一个函数运算得到一个字符串。rn现在问题是这样的话频繁操作IO,速度也不快。rn试过改成如下rnstring info = string.Empty;rn for (int i = 0; i < Records.Count; i++)rnrn info += GetRecordsInfo(Records[i]);rn rnrn File.AppendAllText(filename, info);rn但是速度一样不快,原因是Records.Count数量比较大, GetRecordsInfo(Records[i])得到的内容比较长rn请问有没有更好的方法,请高手们提示一下。谢谢
创建txt文档并向里面写入内容
用按钮创建一个TXT文档,向里面写入内容。 最后打开文档并读取文档里的内容。
vc读取和写入txt文档内容
vc读取和写入txt文档内容 if(strLine!="") { for (p=strtok(str,";");p!=NULL;p=strtok(NULL,";")) { strTemp = p; result+=strTemp; //换行输出数据 result += "\r\n"; // if (row==0||row==2||row==10||row==21||row==23||row==31||row==42||row==44||row==52||row==63||row==65||row==73)//ccd1-4 // { // // } // // if (row==106||row==107||row==109||row==111||row==113||row==115||row==117||row==119||row==121||row==123||row==125||row==135||row==137/**/) // { // // } } row ++; } } delete lpszOpenFile;//释放分配的对话框 m_strText = _T(result); UpdateData(false);
[vb.net] txt文档内容写入到Access数据库
rntxt文档内容如下;rnrn123456rn456125rn123578rn214436rn456857rn246898rn246858rnrn利用mid函数摘取每个记录条的从第二开始到末的部分。rnrn筛选读取结果为rnrn23456rn56125rn23578rn14436rn56857rn46898rn46858rnrnrn把这个文档内容输入到Access数据库的datatable1表里。rnrnrn希望提供代码示例过程。rnrn最好是SQL语句或Linq语句。rnrnrn
可以读取txt文档
可以读取txt文档 Private Sub Form_Load() Dim s1 As String Dim s2 As String Open "c:\1.txt" For Input As #1 Line Input #1, s1 Line Input #1, s2 Label1.caption = s2 Close #1 End Sub
C++输出数据到TXT文档中
代码测试过程中总需要将一些数据输出到文档中进行查看。唉……脑子是个好东西,可惜记不住: 包含头文件: #include <iostream> #include <fstream> using namespace std; 主函数: int main() { int a = 10; float b = 10.0; ofstream dataFile; dataFile.
请教写入txt文档的问题
一窗体上有如下控件:文本控件5个,按钮一个.其中有4年文本控件是用来输入数据的,第5个是用来储存这些数据的,现在想实现如下功能,每次输入完4个文本框后按一下按钮,在第5个文本框中增加新的一行。我遇到的问题是每次点按钮都把上一次的覆盖了,怎么样才能既添加了一行又不覆盖以前的?如果是写入txt文件时又怎么操作?rn我的部分源码如下:rntxt5.text=txt1.text & "|" & txt2.text & "|" & txt3.text & "|" txt4.text & "|"
Txt文档的打开和写入
简单的Txt文档的打开和写入,创建字体格式.
wince+vc写入txt文档乱码问题
wince的vc (unicode编码),写入txt文档乱码问题rnrn[code=c]rn///***************************************************************************rn///采用MFC的方法获取系统时间 并 写入文件rn///***************************************************************************rnvoid CamException::WriteToFile(CString exMsg)rnrn #pragma region //异常日志rn rn SYSTEMTIME st;rn //时间标记rn CString strTimeTag;rn GetLocalTime(&st);rn strTimeTag.Format(L"%4d-%2d-%2d %2d:%2d:%2d",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);rn //带时间标记的异常信息记录rn CString strFullExMsg;rn strFullExMsg=strTimeTag + L" # " + exMsg;rn DWORD dwCharLength;rn // char *pChar=CString2char(strFullExMsg,&dwCharLength);rn rn char *pChar = (char*)strFullExMsg.GetBuffer(strFullExMsg.GetLength());rn dwCharLength = strFullExMsg.GetLength() + 1;rn strFullExMsg.ReleaseBuffer();rnrn #pragma endregionrn rn //获取当前应用程序的路径 rn if (strCurrentFolderPath == "")rn rn strCurrentFolderPath = QueryExePath(); rn rn CFile hSaveFile; rn hSaveFile.Open(strCurrentFolderPath + L"ErrorLog.txt", CFile::modeCreate | CFile::modeWrite |CFile::modeNoTruncate);//创立一个txt文件。rn rn if(hSaveFile.GetLength() > 3000)rn rn hSaveFile.Close();rn hSaveFile.Remove(strCurrentFolderPath + L"ErrorLog.txt");rn hSaveFile.Open(strCurrentFolderPath + L"ErrorLog.txt", CFile::modeCreate | CFile::modeWrite |CFile::modeNoTruncate);rn rn //文件末尾rn hSaveFile.SeekToEnd();rn rn hSaveFile.Write(pChar, dwCharLength);rn hSaveFile.Write("\r\n",2);rn hSaveFile.Close();rn //释放内存rn free(pChar);rn pChar=NULL;rn rn[/code]rnrn调用此方法,显示写入的数据是乱码,谁能帮我改一下?我知道是字符集问题,但不知道怎么改rn
Unity在面板中查看txt文档内容
在开发中,Unity的Project面有时候需要查看在txt文件,如果默认txt格式不对,则在Inspector中是无法查看的 如上图所示 此时需要将txt文档格式另存为UTF-8 即可查看其中内容 ...
C++读txt文档中特定内容
我想编个程序读取.txt文档中特定的内容,因为.txt文档中含有许多说明性的文字,和一些不必要的数据。例如文件内容为rn额定容量:100kvarn型号:SV2rnl:52cmrnw:32cmrnh:18cmrn请问我怎么读取l的数据即52cm呀!rn我一直用iostream来着,不知怎么实现。rn
怎样修改txt文档中的内容
比如有一个txt文件,假如里面的内容是“-9999 12 123 1234 12345 -9999 -9999 -9999 -9999” 怎样把里面的-9999换为0或者去掉,这该怎样去读取里面的数据呢?
bat脚本取得txt文档中的内容?
path.txt 中的内容如下rnD:\a\1 rnD:\a\2rnrnbat脚本中的内容如下rn@echornfor /f "delims=" %%i in (D:path.txt) do echo %%irn运行脚本只能显示 txt文档中的内容,如何取得显示的内容并且赋值到一个变量中?rnrn例如:rnset a=%%i
C# TXT输出从gridveiw导出TXT文档
DataSet ds = new DataSet();cmd2.Fill(ds);在C#网页中输出TXT
java txt文档
java txt文档
Java开发环境和文档.txt
Java开发环境工具和文档 ,_______供初学者使用,
java txt文档编辑器
一个好的资源编辑器,java文档示例。JFileChooserTest.
JAVA读取TXT文档
[code=&quot;java&quot;] import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class FileReaderTest { ...
Java 环境变量配置 txt文档
Java 环境变量配置 txt文档,Java 环境变量配置 txt文档,
java相关TXT文档
提示:如果文件名太长,或者手机不支持中文文件名可以将文件改成 英文短一点的文件名再传到手机上面安装阅读。 如果手机不支持大文件的电子书可以将TXT文件切成少于300K 一个的文件再重新制作成电子书即可安装阅读。 如果有其它任何问题请到论坛提出,谢谢!
java小结txt文档
java的自己学习中的一些小笔记,总结。不全
java读取txt文档的
public static void readTxtFile&#40;String filePath&#41;{ try { String encoding="gb2312";
java操作txt文档
import java.io.*; class FileOutputStreamDemo { public static void main(String args[]) { //声明一个FileOutputStream变量 FileOutputStream out;  //声明一个Print Stream流 PrintStream p;  try { //建...
java将txt内容复制到另一个txt
package document; import interfaces.ICommon; import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOEx...
导入txt文档和拆分txt文档
文档中的内容需要导入到两列10行的表格中,比如如下.rn序号 名称rn1 毛巾rn2 毛巾rn3 毛巾rn4 毛巾rn5 毛巾rn6 毛巾rn7 肥皂rn8 肥皂rn9 肥皂rn10 肥皂rn如果行数像这样也就是加上标题小于等于11,就直接选取1到10行导入没有问题。rn但是如果行数大于11,比如rn序号 名称rn1 毛巾rn2 毛巾rn3 毛巾rn4 毛巾rn5 毛巾rn6 毛巾rn7 肥皂rn8 肥皂rn9 肥皂rn10 肥皂rn11 肥皂rn12 拖鞋rn13 拖鞋rn14 拖鞋rn就需要把这个文档拆分成两个文档,便于分开管理。文档1显示为rn序号 名称rn1 毛巾rn2 毛巾rn3 毛巾rn4 毛巾rn5 毛巾rn6 毛巾rnrn文档2显示为rn序号 名称rn7 肥皂rn8 肥皂rn9 肥皂rn10 肥皂rn11 肥皂rn12 拖鞋rn13 拖鞋rn14 拖鞋rnrn拆分的原则是同类的不能被拆分。比如不能把10肥皂和11肥皂分开。以此类推,可以拆分为多个文档。这个怎么实现啊?rnrnrnrnrn
(八十九)txt文档的输入和输出
写入文本文件: 要操作txt文档,首先要有头文件,有点类似。 然后要创建一个ofstream的对象的对象名。具体格式为: ofstream 对象名 对象名可以任意使用,例如abc,def等,之后通过他,来操纵相应的文件。 当使用: 对象名.open("文件名");  时,实际上就是将对象名指向了这个文件。 然后以后可以通过使用对象名,来输入/输出这个文件了。 假如open的文件不存在
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件