精华内容
下载资源
问答
  • 读写文本文件

    2020-03-29 21:12:37
    读写文本文件 : 文本文件 Excel文件 HTML文件 数据库 CSV文件是一种纯文本文件,可以使用任何文本编辑器进行编辑,它支持追加模式,节省内存开销 to_csv()方法的功能是将数据写入到CSV文件中 to_csv(path_or_buf=...

    读写文本文件 : 文本文件 Excel文件 HTML文件 数据库
    CSV文件是一种纯文本文件,可以使用任何文本编辑器进行编辑,它支持追加模式,节省内存开销
    在这里插入图片描述

    to_csv()方法的功能是将数据写入到CSV文件中
    to_csv(path_or_buf=None,sep=’,’,na_rep=’’,float_format=None,columns=None,header=True,index=True,index_label=None,mode=’w’,……)
    说明 : path_or_buf —— 文本路径
    Index —— 默认为True,若设为False,则将不会显示索引
    sep : 分隔符,默认用“,”隔开

    read_csv()函数的作用是将CSV文件的数据读取出来,转换成DataFrame对象展示
    read_csv(filepath_or_buffer,sep=’,’,delimiter=None,header=’infer’,names=None,index_col=None,usecols=None,prefix=None,……)
    说明 : sep —— 指定使用的分隔符,默认用“,”分隔
    header —— 指定行数用来作为列名
    names —— 用于结果的列名列表,如果文件不包含标题行,则应该讲该参数设置为None

    Text格式的文件也是比较常见的存储数据的方式,后缀名为”.txt”,它与上面提到的CSV文件都属于文本文件
    读取Text文件,既可以用前面提到的read_csv()函数,也可以使用read_table()函数

    read_csv()与read_table()函数的区别在于使用的分隔符不同,前者使用“,”作为分隔符,而后者使用“\t”作为分隔符

    例如 :在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 主要介绍了C#读写文本文件的方法,实例分析了C#操作文本文件的原理与实现技巧,需要的朋友可以参考下
  • Qt读写文本文件

    2018-06-30 19:57:18
    QFile:该类提供了一个读写文件的接口,可以读写文本文件和二进制文件,QFile类可以被QTextStream类或者QDataStream类使用。 QTextStream:文本流,同样,该类提供了读写文本文件的接口。使用中类似于C++中的iostream....

    文本文件在日常办公中很常用,本小节Jungle用Qt来实现文本文件的读写

    1.用到的类

    • QFile:该类提供了一个读写文件的接口,可以读写文本文件和二进制文件,QFile类可以被QTextStream类或者QDataStream类使用。
    • QTextStream:文本流,同样,该类提供了读写文本文件的接口。使用中类似于C++中的iostream.

    2.UI设计

    这里写图片描述

    3.类设计

    设计一个简单的类testClass ,就两个方法:读文件和写文件

    #ifndef TESTCLASS_H
    #define TESTCLASS_H
    
    #include <QtGui/QMainWindow>
    #include "ui_testClass.h"
    #include <QFile>
    #include <QFileDialog>
    #include <QTextStream>
    
    class testClass : public QMainWindow
    {
    	Q_OBJECT
    
    public:
    	testClass(QWidget *parent = 0, Qt::WFlags flags = 0);
    	~testClass();
    
    public slots:
    	// 打开文本文件
    	void openFile();
    	// 保存为文本文件
    	void saveFile();
    
    private:
    	Ui::testClassClass ui;
    };
    
    #endif // TESTCLASS_H
    
    

    4.类实现

    #include "testClass.h"
    
    testClass::testClass(QWidget *parent, Qt::WFlags flags)
    	: QMainWindow(parent, flags)
    {
    	ui.setupUi(this);
    	
    	connect(ui.pushButton_saveFile,SIGNAL(clicked()),this,SLOT(saveFile()));
    	connect(ui.pushButton_openFile,SIGNAL(clicked()),this,SLOT(openFile()));	
    }
    
    testClass::~testClass()
    {
    
    }
    
    void testClass::openFile()
    {
    	QString fileName = QFileDialog::getOpenFileName(this,tr("Open file"),"/","All files(*);;Text files(*.txt)");
    	QFile file(fileName);
    	// 以只读方式打开文件
    	if(!file.open(QIODevice::ReadOnly|QIODevice::Text))
    		return;
    	QTextStream inFile(&file);
    	QString strLine;
    	while(!inFile.atEnd())
    	{
    		strLine = inFile.readLine();
    		ui.textEdit->append(strLine);
    	}
    	file.close();
    }
    
    void testClass::saveFile()
    {
    	QString fileName = QFileDialog::getSaveFileName(this,tr("Open file"),"/","All files(*);;Text files(*.txt)");
    	QFile file(fileName);
    	// 以只写方式打开文件
    	if(!file.open(QIODevice::WriteOnly|QIODevice::Text))
    		return;
    	QTextStream outFile(&file);
    	QString str = ui.textEdit->toPlainText();
    	outFile<<str;
    	file.close();
    }
    
    

    5.测试

    5.1写入文本文件,保存在桌面

    这里写图片描述
    这里写图片描述

    5.2读取文本文件

    这里写图片描述

    展开全文
  • Python读写文本文件

    千次阅读 2021-02-26 10:59:45
    Python读写文本文件 读取文本文件 数据几乎无一例外地是被保存在文件中的。这些文件可能是文本文件、CSV 文件、Excel 文件或其他类型的文件。知道如何访问此类文件以及从中读取数据是在 Python 中进行数据处理、加工...

    Python读写文本文件

    读取文本文件

    数据几乎无一例外地是被保存在文件中的。这些文件可能是文本文件、CSV 文件、Excel 文件或其他类型的文件。知道如何访问此类文件以及从中读取数据是在 Python 中进行数据处理、加工与分析的前提。当完成了一个每秒钟可以处理很多文件的程序时,与手动一个个地处理文件相比,你会真正体会到写程序的好处。

    你需要告诉 Python,脚本要处理何种类型的文件。你可以在程序中写死文件名称,但是如果这样的话,就不能使用这个程序处理多个不同的文件了。能读取多个不同文件的方法是,在命令行窗口或终端窗口的命令行中,在 Python 脚本的名字后面加上完整的文件路径名。要使用这种方法,需要在脚本开始时导入内置的 sys 模块。在脚本上方加上 import sys 语句之后,就可以在脚本中使用 sys 模块提供的所有功能了:

    #!/usr/bin/env python3
    from math import exp, log, sqrt
    import re
    from datetime import date, time, datetime, timedelta
    from operator import itemgetter
    import sys
    

    导入了 sys 模块之后,你就可以使用 argv 这个列表变量了。这个变量捕获了传递给 Python 脚本的命令行参数列表,即你在命令行中的所有输入,包括你的脚本名称。和任何其他列表一样,argv 也有索引。argv[0] 就是脚本名称,argv[1] 是命令行中传递给脚本的第一个附加参数,在这个例子中,就是 first_script.py 将要读取的文件路径名。

    创建文本文件

    要读取一个文本文件,首先要创建它。要创建文本文件,需执行以下步骤。

    (1) 打开 Spyder IDE 或一个文本编辑器(例如:Windows 系统下的 Notepad、Notepad++、Sublime Text;macOS 系统下的 TextMate、TextWrangler、Sublime Text)。

    (2) 在文本文件中写入下面 6 行:

    I'm
    already
    much
    better
    at
    Python.
    
    Notepad++ 中的文本文件 file_to_read.txt(Windows)

    复制代码{%}

    (3) 将文件保存在桌面上,文件名为 file_to_read.txt。

    (4) 将下面几行代码添加到 first_script.py 的下方:

    # 读取文件
    # 读取单个文本文件
    input_file = sys.argv[1]
    
    print "Output #143: "
    filereader = open(input_file, 'r')
    for row in filereader:
        print row.strip()
    filereader.close()
    

    示例中的第一行代码使用 sys.argv 列表捕获了要读取的文件的路径名,并将路径名赋给变量 input_file。第二行代码创建了一个文件对象 filereader,其中包含了以 r 模式(只读模式)打开的 input_file 文件中的各个行。下一行中的 for 循环每次读取 filereader 对象中的一行。for 循环内部的 print 语句打印出每一行,并且在打印之前用 strip 函数去掉每一行两端的空格、制表符和换行符。最后一行代码在输入文件中的所有行都被读取并打印到屏幕后,关闭 filereader 对象。

    (5) 重新保存 first_script.py。

    (6) 要读取刚才创建的文本文件,输入下面的命令,如图所示,然后按回车键:

    python first_script.py file_to_read.txt
    
    Python 脚本和它要在命令行窗口中处理的文本文件

    在这里插入图片描述
    这样,你就在 Python 中读取了一个文本文件。你会看到下面的内容被打印到屏幕上,在以前的输出之后:

    I'm
    already
    much
    better
    at
    Python.
    
    first_script.py 的输出,在命令行窗口中处理文本文件

    在这里插入图片描述

    脚本和输入文件在同一位置

    因为 first_script.py 和 file_to_read.txt 在同一位置,即都在桌面上,所以简单地输入 python first_script.py file_to_read.txt 是可以的。如果文本文件和脚本不在同一位置,就需要输入文本文件的完整路径名,这样脚本才能知道去哪里寻找这个文件。

    例如,如果文本文件在你的 Documents 文件夹中,而不是在桌面上,那么你可以在命令行中使用下面的路径名来从其所处位置读取文本文件:

    python first_script.py "C:\Users\[Your Name]\Documents\file_to_read.txt"
    

    读取文件的新型语法

    前面讲的用来创建 filereader 对象的那行代码是创建文件对象的传统方法。这种方法没有什么问题,但是它使文件对象一直处于打开状态,直到使用 close 函数明确地关闭或直到脚本结束。尽管这种做法一般没有问题,但不够清晰,还被证明在更复杂的脚本中会导致错误。从 Python 2.5 开始,你可以使用 with 语句来创建文件对象。这种语法在 with 语句结束时会自动关闭文件:

    input_file = sys.argv[1]
    print("Output #144:")
    with open(input_file, 'r', newline='') as filereader:
    for row in filereader:
        print("{}".format(row.strip()))
    

    你可以看到,使用 with 语句的版本与前一个版本非常相似,但是它不需调用 close 函数来关闭 filereader 对象。

    这个示例演示了如何使用 sys.argv 来访问并打印一个文本文件中的内容。这是一个简单的示例,但在后面的示例中,要以此为基础访问其他类型的文件,或一次访问多个文件,并向输出文件中写入内容。

    下面介绍 glob 模块,它让你能够通过几行代码读取和处理多个输入文件。glob 模块之所以功能强大,是因为它处理的是文件夹(也就是说,它处理目录,不是单个的文件),所以将前面读取文件的代码删除或注释掉,这样就可以使 argv[1] 指向一个文件夹,而不是一个文件了。将代码注释掉就是在你希望计算机忽略掉的代码前面加上一个井号,所以当你结束注释时,first_script.py 文件就应该像下面这样:

    ## 读取一个文本文件(旧方法) ##
    #input_file = sys.argv[1]
    #print("Output #143:")
    #filereader = open(input_file, 'r', newline='')
    #for row in filereader:
    # print("{}".format(row.strip()))
    #filereader.close()
    ## 读取一个文本文件(新方法) ##
    #input_file = sys.argv[1]
    #print("Output #144:")
    #with open(input_file, 'r', newline='') as filereader:
    # for row in filereader:
    # print("{}".format(row.strip()))
    

    做完这些修改之后,你就可以添加下一节要讨论的 glob 代码来处理多个文件了。

    使用glob读取多个文本文件

    在很多商业应用中,需要对多个文件进行同样的或相似的处理。例如,你可能会从多个文件中选择数据子集,根据多个文件计算像总计和均值这样的统计量,或根据来自于多个文件的数据子集计算统计量。当文件数量增加时,手动处理文件的可能性会减小,出错的概率会增加。

    读取多个文件的一种方法是在命令行中将包含输入文件目录的路径名写在 Python 脚本名称之后。要使用这种方法,你需要在脚本开头导入内置的 os 模块和 glob 模块。在脚本上方添加了 import os 和 import glob 语句之后,你就可以使用 os 模块和 glob 模块提供的所有功能了:

    #!/usr/bin/env python3

    from math import exp, log, sqrt
    import re
    from datetime import date, time, datetime, timedelta
    from operator import itemgetter
    import sys
    import glob
    import os
    

    当导入了 os 模块之后,你就可以使用它提供的若干种路径名函数了。例如,os.path.join 函数可以巧妙地将一个或多个路径成分连接在一起。glob 模块可以找出与特定模式相匹配的所有路径名。os 模块和 glob 模块组合在一起使用,可以找出符合特定模式的某个文件夹下面的所有文件。

    要读取多个文件,需要再创建一个文本文件。

    创建另一个文本文件
    (1) 打开 Spyder IDE 或一个文本编辑器(例如:Windows 系统下的 Notepad、Notepad++、Sublime Text;macOS 系统下的 TextMate、TextWrangler、Sublime Text)。

    (2) 在文本文件中写入下面 8 行):

    This
    text
    comes
    from
    a
    different
    text
    file.
    
    Notepad++ 中的文本文件 another_file_to_read.txt

    在这里插入图片描述

    (3) 将文件保存在桌面上,文件名为 another_file_to_read.txt。

    (4) 将下面几行代码添加到 first_script.py 的下方:

    # 读取多个文本文件
    print("Output #145:")
    inputPath = sys.argv[1]
    for input_file in glob.glob(os.path.join(inputPath,'*.txt')):
        with open(input_file, 'r', newline='') as filereader:
            for row in filereader:
                print("{}".format(row.strip()))
    

    这个示例中的第一行代码与读取单个文本文件示例中的代码非常相似,只是在这个示例中,要提供一个目录路径名,而不是一个文件路径名。这里,要提供的路径指向包含了两个文本文件的目录。

    第二行代码是 for 循环,使用 os.path.join 函数和 glob.glob 函数来找出符合特定模式的某个文件夹下面的所有文件。指向这个文件夹的路径包含在变量 inputpath 中,这个变量将在命令行中被提供。os.path.join 函数将这个文件夹路径和这个文件夹中所有符合特定模式的文件名连接起来,这种特定模式可以由 glob.glob 函数扩展。这个示例使用的是模式 *.txt 来匹配由 .txt 结尾的所有文件名。因为这是一个 for 循环,所以这行中其余的代码你应该很熟悉了。input_file 是一个占位符,表示由 glob.glob 函数生成的列表中的每个文件。这行代码的意义就是:对于匹配文件列表中的每个文件,做下面的操作……

    余下的代码和读取单个文件的代码非常相似。以只读方式打开 input_file 变量,然后创建一个 filereader 对象。对于 filereader 对象中的每一行,除去行两端的空格、制表符和换行符,然后打印这一行。

    (5) 重新保存 first _script.py。

    (6) 要读取这些文本文件,输入以下代码,如图所示,然后按回车键:

    python first_script.py "C:\Users\[Your Name]\Desktop"
    
    Python 脚本和指向包含文本文件的桌面文件夹的路径

    在这里插入图片描述

    这样,你就在 Python 中读取了多个文本文件。你会看到以下内容被打印到屏幕上,在以前的输出之后:

    This
    text
    comes
    from
    a
    different
    text
    file.
    I'm
    already
    much
    better
    at
    Python.
    
    first_script.py 的输出,在命令行窗口中处理多个文本文件

    学会这项技术的一个巨大好处是它可以规模化扩展。这个示例只是处理两个文本文件,但是它可以轻松地扩展为处理几十、几百或者几千甚至更多的文件。学习了如何使用 glob.glob 函数,仅花费手动处理的一小部分时间,就可以处理非常非常多的文件。

    写入文本文件

    迄今为止,大多数示例还是使用 print 语句将输出发送到命令行窗口或终端窗口。当你在调试程序,或者在检查输出的准确度时,将输出打印到屏幕上是有意义的。但是,在很多情况下,只要你能确定输出是正确的,就会需要将输出写入文件,以进行更进一步的分析、报告和存储。

    Python 提供了两种简单的方法来将输出写入文本文件和分隔符文件。write 方法可将单个字符串写入一个文件,writelines 方法可将一系列字符串写入一个文件。下面的两个示例使用 range 函数和 len 函数跟踪一个列表中的索引值,以将分隔符放在各个列表值之间,并在最后一个列表值后面放上一个换行符。

    向first_script.py添加代码

    (1) 将下面各行代码添加到 first_script.py 的底部:

    # 写入文件
    # 写入一个文本文件
    my_letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
    max_index = len(my_letters)
    output_file = sys.argv[1]
    filewriter = open(output_file, 'w')
    for index_value in range(len(my_letters)):
        if index_value < (max_index-1):
            filewriter.write(my_letters[index_value]+'\t')
        else:
            filewriter.write(my_letters[index_value]+'\n')
    filewriter.close()
    print "Output #146: Output written to file"
    

    在这个例子中,变量 my_letters 是一个字符串列表。这里想把这些字母打印到一个文本文件中,每个字母之间用制表符分隔。这个示例中的难点是确保在字母之间以制表符分隔,并在最后一个字母后面放上一个换行符(不是制表符)。

    为了知道什么时候到达最后一个字母,你需要跟踪列表中字母的索引值。len 函数用来计算出列表中字母的数量,所以 max_index 等于 10。在命令行窗口或终端窗口中,再次使用 sys.argv[1] 来在命令行中提供输出文件的路径名。创建一个文件对象 filewriter,但是打开方式不是只读,而是通过 w(可写)的方式打开。使用 for 循环在列表 my_letters 的各个值之间进行迭代,并使用 range 函数和 len 函数跟踪列表中各个字母的索引值。

    if-else 语句可以使你对列表中的最后一个字母做出与前面那些字母不同的处理。if-else 语句是这样工作的:my_letters 包含 10 个元素,但是索引从 0 开始,所以各个字母的索引值分别是 0、1、2、3、4、5、6、7、8、9。因此,my_letters[0] 是 a,my_letters[9] 是 j。if 代码块判断索引值 x 是否小于 9,max_index - 1 或者是 10 - 1 = 9。直到列表中的最后一个字母,这个条件才为 True。因此,if 代码块的意义是:一直到列表中的最后一个字母,都向输出文件中写入字母,并在字母后面加一个制表符。当你到达了列表中的最后一个字母时,这个字母的索引值为 9,不大于 9,所以 if 代码块判断为 False,就执行 else 代码块。else 代码块中的 write 语句的意义是:向输出文件中写入最后一个字母,并在后面加一个换行符。

    (2) 将前面读取多个文件的代码注释掉。

    为了看到这些代码是如何工作的,这里需要写入一个文件然后查看输出。因为你又一次使用了 argv[1] 来确定输出文件的路径名,所以需要将前面的 glob 代码删除或注释掉,这样就可以使用 argv[1] 来确定输出文件了。如果选择注释掉前面的 glob 代码,那么 first_script.py 应该如下所示:

    ## 读取多个文本文件
    #print("Output #145:")
    #inputPath = sys.argv[1]
    #for input_file in glob.glob(os.path.join(inputPath,'*.txt')):
    #    with open(input_file, 'r', newline='') as #filereader:
    #        for row in filereader:
    #            print("{}".format(row.strip()))
    

    (3) 重新保存 first_script.py。

    (4) 要写入一个文本文件,输入下面的代码,如图所示,然后按回车键:

    python first_script.py "C:\Users\[Your Name]\Desktop\write_to_file.txt"
    
    应该在命令行窗口中输入的 Python 脚本、文件路径和输出文件名

    在这里插入图片描述

    (5) 打开输出文件 write_to_file.txt。

    这样,你就使用 Python 将输出写入了一个文本文件。在完成这些步骤之后,你不会在屏幕上看到新的输出;但是,如果你将所有打开的窗口最小化,就会看到桌面上有一个新的文本文件,名为 write_to_file.txt。这个文件中应该包含了列表 my_letters 中的字母,以制表符隔开,最后有一个换行符,如图所示。

    输出文件 write_to_file.txt,由 first_script.py 在桌面上创建

    在这里插入图片描述

    下一个示例与这个很相似,只是它演示了如何使用 str 函数来将元素转换为字符串,以便使用 write 函数将其写入一个文件。它还演示了使用 ‘a’(追加)方式将输出追加到一个已经存在的输出文件末尾的方法。

    写入CSV文件

    (1) 将下列各行代码添加到 first_script.py 的底部:

    # 写入CSV文件
    my_numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    max_index = len(my_numbers)
    output_file = sys.argv[1]
    filewriter = open(output_file, 'a')
    for index_value in range(len(my_numbers)):
        if index_value < (max_index-1):
            filewriter.write(str(my_numbers[index_value])+',')
        else:
            filewriter.write(str(my_numbers[index_value])+'\n')
    filewriter.close()
    print "Output #147: Output appended to file"
    

    这个示例与前面的示例非常相似,但是它说明了如何向已经存在的输出文件中追加内容,以及如何将列表中的非字符串数据转换成字符串,以便可以使用 write 函数来写入文件。在这个示例中,列表中的元素是整数。write 函数处理的是字符串,所以在你使用 write 函数将其写入输出文件之前,需要使用 str 函数将非字符串数据转换成字符串。

    在使用 for 循环进行第一次迭代时,str 函数会向输出文件中写入一个 0,然后写入一个逗号。以这种方式继续写入列表中的其他数值,直到列表中的最后一个数值,这时执行 else 代码块,将最后一个数值写入输出文件,并在后面加上一个换行符,而不是逗号。

    请注意在打开文件对象 filewriter 时,使用的是追加模式(‘a’),而不是可写模式(‘w’)。如果在命令行中提供了同样的输出文件名,那么这段代码的输出会被追加到 write_to_file.txt 文件中,在以前写入文件的内容之后。相反,如果使用可写方式打开 filewriter 对象,那么以前的输出会被删除,write_to_file.txt 文件中只会出现这段代码的输出。你会在本书后面的章节中看到使用追加方式打开文件的作用,这时你要处理多个文件,并将其中所有的数据追加到一个连接文件中。

    (2) 重新保存 first_script.py。

    (3) 要向文本文件中追加数据,输入以下命令然后按回车键:

    python first_script.py "C:\Users\[Your Name]\Desktop\write_to_file.txt"
    

    (4) 打开输出文件 write_to_file.txt。

    这样,你就使用 Python 向文本文件中写入和追加了数据。在完成这些步骤之后,你不会在屏幕上看到新的输出;但是,如果你打开了 write_to_file.txt 文件,会看到文件中出现了新的一行,行中包括了 my_numbers 中的数值,以逗号隔开,并在末尾有一个换行符,如图 所示。

    输出文件 write_to_file.txt,由 first_script.py 追加了信息

    在这里插入图片描述

    最后,这个示例演示了一个写入 CSV 文件的有效方法。实际上,在前面的例子中,你将由制表符分隔的数据写入了输出文件,如果将制表符改为逗号,并且将输出文件命名为 write_to_file.csv 而不是 write_to_file.txt 的话,就可以创建一个 CSV 文件。

    推荐参考学习书籍:Python数据分析基础

    展开全文
  • C++简单读写文本文件统计文件的行数读取文件数据到数 fstream 提供了三个类用来实现 c++对文件的操作文件的创建读写 ifstream -- 从已有的文件读 ofstream -- 向文件写内容 fstream - 打开文件供读写 文件打开模式: ...
  • VC++读写文本文件txt

    热门讨论 2011-08-25 10:53:31
    VC++读写文本文件txt,提供了大量的读写文本文件txt源代码,适合初级VC人员的操作
  • Java读写文本文件

    千次阅读 2018-10-29 21:29:23
    Java入门——读写文本文件 文本文件的读写在项目中会经常涉及,需要我们熟练掌握。 一、使用FileWriter写文件 【功能】FileWriter类专门用来写字符到文本文件中。 【构造方法】 public FileWriter(String fileName...

    Java入门——读写文本文件

    文本文件的读写在项目中会经常涉及,需要我们熟练掌握。

    一、使用FileWriter写文件

    【功能】FileWriter类专门用来写字符到文本文件中。

    【构造方法】

    1. public FileWriter(String fileName):此构造方法的参数是文件名。文件名可以是相对路径,也可以绝对路径。此构造方法构造的对象,往文件写数据时,会擦除文件内原始内容,从头开始写数据。

    2. public FileWriter(String fileName, boo

    3. lean append):此构造方法要求两个参数,第一个单数fileName表示文件名,第二个参数append为true表示所写的新字符追加到文件原始内容之后,为fasle表示擦除文件的原始内容,从新开始写数据。

    4. FileWriter(File file):根据给定的 File 对象构造一个 FileWriter 对象。

    5. FileWriter(File file, boolean append):根据给定的 File 对象构造一个 FileWriter 对象。

    6. FileWriter(FileDescriptor fd):构造与某个文件描述符相关联的 FileWriter 对象。

    【注意】

    1. FileWriter类只能用来写字符流到文件中,如果要写原始字节到文件,需要使用FileOutputStream类。
    2. FileWriter类将字符串按照默认的字符编码格式进行编码写到文件,缓冲区也是默认大小。如果要指定编码方式和缓冲区大小,需要使用FileOutputStream类。

    【实例】:

    // FileWriter类本身没有换行的方法,需要通过转义符换行
    public static void writeTxt1(){
        // 构造对象时,append参数指示新字符是否添加到原内容后,该参数默认为false
        try(FileWriter fw = new FileWriter("other\\out1.txt", true)){
            fw.write("直接使用FileWriter写字符流到文件中\r\n");
            // fw.write("hhhh");
            // fw.write(System.getProperty("line.separator"));
            fw.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    【补充】不同系统的用来表示换行的转义字符不同,例如windows为’\r\n’,Unix为’\n’,mac为’\r’,因此,我们一般使用System.getProperty("line.separator")来获得当前系统的换行符。

    二、使用BufferWriter类写文本文件

    【功能】
    将文本写入输出流,缓冲各个字符,从而提供单个字符、字符数组和字符串的高效写入。
    【主要接口】

    void write(char ch);//写入单个字符。
    void write(char []cbuf,int off,int len)//写入字符数据的某一部分。
    void write(String s,int off,int len)//写入字符串的某一部分。
    void newLine()//写入一个行分隔符。
    void flush();//刷新该流中的缓冲。将缓冲数据写到目的文件中去。
    void close();//关闭此流,再关闭前会先刷新他。
    

    【构造方法】

    1. public BufferedWriter(Writer out):创建一个默认缓冲区大小的字符输出流对象。参数out是一个输出流对象,如FileWriter对象。
    2. public BufferedWriter(Writer out, int sz) :创建一个指定缓冲区大小的字符输出流对象。参数out是一个输出流对象,如FileWriter对象。参数sz表示缓冲区大小,正整数。

    【实例】

    public static void writeFile(){
        try {
            File writeName = new File(".\\other\\out.txt");
            writeName.createNewFile();
            try (FileWriter writer = new FileWriter(writeName, true);
                  BufferedWriter out = new BufferedWriter(writer)){
                out.write("写入文件1"); 
                out.newLine();   // 换行
                out.write("写入文件2");
                out.newLine();
                out.flush();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    三、使用FileReader类按字符读取文本

    【功能】按字节读取文件

    【主要接口】

    int read();   // 读取一个字符并返回其对应的ASCII值
    int read(char cbuf[], int offset, int length);   // 读取多个字符到指定的数组中,可指定偏移量和读取长度
    

    【实例】

    public static void readTxt1(){
        try (FileReader fr = new FileReader("other\\out1.txt")){
            int ch = 0;
            while ((ch = fr.read()) != -1){    // 单字符读入,也可以读入多个字符并存到符数组中
                System.out.println((char)ch);
            }
        }catch (IOException e){
            e.printStackTrace();
        }
    }
    

    四、使用BufferedReader读取文本

    【功能】从字符流中读取文本,并且缓存字符串以提供高效的按字符,数组,按行读取的方式。
    【构造方法】

    1. BufferedReader(Reader in, int sz):in是Reader实例化对象,sz为缓冲区大小;
    2. BufferedReader(Reader in):采用默认缓冲区大小,一般足够;
      【主要接口】
    int read();  // 读取一个字符
    int read1(char[] cbuf, int off, int len);   // 读取字符到字符数组中,指定偏移和数组长度
    String readLine();   // 读取一行,可选择跳过换行符
    long skip(long n);   // 跳过n个字符
    

    【实例】

    public static void readFile(){
        String pathName = "other\\test.txt";
    //      Java7的try-with-resources可以优雅关闭文件,异常时自动关闭文件;
        try(FileReader reader = new FileReader(pathName);
            BufferedReader br = new BufferedReader(reader)){
            String line;
    //           按行读取数据
            while ((line = br.readLine()) != null){
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    【补充】推荐使用JDK7新特性 try-with-resources语法来自动关闭外部资源,不用在finally中手动关闭资源。

    参考博客https://www.cnblogs.com/bayes/p/5478862.html

    展开全文
  • 主要介绍了使用Python读写文本文件及编写简单的文本编辑器的方法,可以利用简单的Python代码实现编辑器中的读取清空和文本文件的新建等操作,需要的朋友可以参考下
  • Java读写文本文件的示例代码.rar
  • C#读写文本文件

    2019-10-09 04:47:57
    C#读写文本文件 采用文件流方式来处理,StreamReader,StreamWriter: StreamReader sr = new StreamReader("c:\\a.txt"); while(!sr.EndOfSt...
  • java读写文本文件大全

    千次阅读 2018-11-13 09:59:37
    java读写文本文件大全
  • 好久没给大家分享Delphi源代码了,这里给大家一个delphi读写txt和ini的实例,通过Memo读写文本文件和ini文件源码
  • C++读写文本文件

    2018-03-03 14:43:27
    C++读写文本文件#include "stdafx.h" #include &lt;iostream&gt; using namespace std; #include &lt;fstream&gt; //读写文本文件 int _tmain(int argc, _TCHAR* argv[]) { fstream ...
  • 以流式方式读写文本文件,C#代码案例,贡献出来,共同学习
  • 本篇文章是对C++中简单读写文本文件的方法进行了详细的分析介绍,需要的朋友参考下
  • 今天小编就为大家分享一篇C/C++读写文本文件、二进制文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python读写文本文件cnasia 2017.3.9#写文件,将26个大写英文字母在#计算机中存的字(ASCII)#写入文件tmp.txt中fname="tmp.txt"f= open(fname, "w")for i in range(26):s=chr(ord('A')+i)f.write(s)f.write('')k=str...
  • Delphi读写文本文件

    千次阅读 2011-01-09 22:47:00
    Delphi读写文本文件
  • 作者: ll_efort 发布时间:2008-08-11 09:00:24 来源: 网络 工作需要,小编需要使用vb.net对文本文件进行读写操作。编程需要完成如下工作: ...现在使用.net读写文本文件,因为时间仓促,没来得及细看MSDN,同时
  • 之前总结了几种用C++读写文本文件的方法,这几天用Qt时大概学了一下用Qt中的Qfile和QTextStream读写文本文件,在此做个记录。 之前对C++读写文本文件的几种方法比较:...
  • JAVA入门_文件I/O_读写文本文件题目要求TextWriterReader类 题目要求 本实验要求:练习常规的IO操作,读取和写入指定目录的文本文件并输出文件内容。 业务说明:无。 创建工程并配置环境: 2.1.创建实验工程 2.2....
  • Delphi直接读写文本文件的方法,不通过Memo控件,直接将字符串写入文件,或者从文件中读出来。很使用
  • 读写文本文件。 从键盘输入多个单词,把输入的单词写入文本文件中,在文本文件中每个单词之间以英文逗号隔开,每行存储5个单词,最后以单词end结束。然后读文件,把文件中的所有单词读取出来,按逗号分隔好,分别...
  • 该类集成了文本的取中间文本、正则匹配文本。 文件的保存文本文件、读出文本文件。 代码简洁高效合适新手直接调用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,272
精华内容 3,708
关键字:

读写文本文件