文件的读取和写入(指定路径)

 1 package cn.jason.ios.streams;
  2
  3 import java.io.BufferedInputStream;
  4 import java.io.BufferedOutputStream;
  5 import java.io.File;
  6 import java.io.FileInputStream;
  7 import java.io.FileNotFoundException;
  8 import java.io.FileOutputStream;
  9 import java.io.FileReader;
 10 import java.io.IOException;
 11
 12 /**
 13  * 测试IO流 *
 14  *         读取指定文件的信息
 15  * @author 小风微灵
 16  *
 17  */
 18 public class MyStream {
 19
 20     /**
 21      * 字节流读取信息到控制台
 22      * @param filePath        文件地址
 23      * @throws IOException    抛出的异常
 24      */
 25     private static void getFileInfos_ZJ(String filePath) throws IOException{
 26
 27         //创建对象
 28         File file=new File(filePath);
 29
 30         //FileInputStream         输入流
 31         FileInputStream fis=new FileInputStream(file);
 32
 33         //需要一个缓冲器
 34         byte[] bs=new byte[1024*1024];
 35
 36         //记录读取长度
 37         int length=fis.read(bs);
 38
 39         //[3]读取数据(开水管洗澡)
 40         String content=new String(bs,0,length);
 41
 42         System.out.println("【缓冲】读取的内容:"+content);
 43
 44         //[4]关闭资源(关闭水龙头)
 45         fis.close();
 46     }
 47
 48     /**
 49      * 字符流读取信息到控制台
 50      * @param filePath
 51      * @throws IOException
 52      */
 53     private static void getFileInfos_ZF(String filePath) throws IOException{
 54                 //创建对象
 55                 File file=new File(filePath);
 56
 57                 //字符流
 58                 FileReader fr=new FileReader(file);
 59
 60                 //开始读取数据
 61                 int content=0;
 62                 while ((content=fr.read())!=-1) {
 63                     System.err.print((char)content);
 64                 }
 65                 fr.close();
 66     }
 67
 68     /**
 69      * 缓冲字符流读取信息到控制台
 70      * read
 71      *        public int read(char[] cbuf,
 72      *                        int offset,
 73      *                        int length)
 74      *                 throws IOException将字符读入数组中的某一部分。
 75      *
 76      *        指定者:
 77      *            类 Reader 中的 read
 78      *        参数:
 79      *            cbuf - 目标缓冲区
 80      *            offset - 从其处开始存储字符的偏移量
 81      *            length - 要读取的最大字符数
 82      *        返回:
 83      *            读取的字符数,如果已到达流的末尾,则返回 -1
 84      *        抛出:
 85      *            IOException - 如果发生 I/O 错误
 86      *
 87      * @throws IOException
 88      */
 89     private static void getFileInfos_ZF_HC(String filePath)throws IOException{
 90         //读取
 91                 File file=new File(filePath);
 92                 FileInputStream fis=new FileInputStream(file);
 93                 BufferedInputStream bis=new BufferedInputStream(fis);
 94             //工具
 95                 int length=0;
 96                 byte[] b=new byte[1024];
 97                 StringBuilder infos=new StringBuilder();
 98         //输出
 99                 while((length=bis.read(b))!=-1){
100                     String str=new String(b,0,length);
101                     infos.append(str);
102                 }
103                 System.out.println(infos.toString());
104
105         //关闭资源
106                 bis.close();
107                 fis.close();
108     }
109
110     /**
111      *拷贝一个文件的内容到另外一个文件中
112      * @param srcFilePath    源文件地址
113      * @param desFilePath    目标文件地址
114      * @throws IOException
115      */
116     private static void sFile_To_OtherFile(String srcFilePath,String desFilePath)
117                                             throws IOException{
118         //读取文件
119             File fin=new File(srcFilePath);
120             FileInputStream fis=new FileInputStream(fin);
121             BufferedInputStream bis=new BufferedInputStream(fis);
122
123         //写入文件
124             File fout=new File(desFilePath);
125             FileOutputStream fos=new FileOutputStream(fout,true);//追加信息,而不是覆盖
126             BufferedOutputStream bos=new BufferedOutputStream(fos);
127
128         //工具准备
129             //缓冲写法1【测试通过】
130 //            byte[] b=new byte[1024];
131 //            int length=0;
132 //            while((length=bis.read(b))!=-1){
133 //                bos.write(b, 0, length);
134 //            }
135             //缓冲写法2【测试通过】
136             int length=0;
137             while((length=bis.read())!=-1){
138                 bos.write(length);
139             }
140         //关闭资源
141             bos.close();
142             fos.close();
143             bis.close();
144             fis.close();
145     }
146
147     /**
148      * 程序入口
149      * @param params    启动参数
150      * @throws IOException     IO流异常抛出
151      */
152     public static void main(String[] params) throws IOException {
153         getFileInfos_ZF_HC("F:\\FileDemos\\2.txt");
154         sFile_To_OtherFile("F:\\FileDemos\\2.txt","F:\\FileDemos\\test.txt");
155     }
156 }

时间: 2024-10-14 09:39:50

文件的读取和写入(指定路径)的相关文章

将字符串添加到指定的文件中去 AppendAllText ;判断指定路径的文件是否存在File.Exists(Path)

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Program { static void Main(string[] args) { string path = @"F:\1.txt"; //指定文件的路径 //---------------------------------------------- //.Exi

PHP 大文件的读取和写入问题

在通常的学习和开发中,因为我们很少会接触到大量数据的读取和写入,所以当突然有了这种需求的时候,我们可 能仍然会按照一些比较快捷的方法,像file_get_contents,fread等方法来读取文件,不过这样以来如果读取的文件太 大,就会产生问题,在实现大文件读取和写入的时候查找了网上的一些资料,不过有些例子给的不是很符合我的需 求,所以我就结合网上已有的例子,再写一篇总结性的博客吧. 那么究竟会产生什么问题呢,这就要说一些PHP的底层实现数,file_get_contents和fread来说一

Java I/O---RandomAccessFile类(随机访问文件的读取和写入)

1.JDK API中RandomAccessFile类的描述 此类的实例支持对随机访问文件的读取和写入.随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组.存在指向该隐含数组的光标或索引,称为文件指针:输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针.如果随机访问文件以读取/写入模式创建,则输出操作也可用:输出操作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针.写入隐含数组的当前末尾之后的输出操作导致该数组扩展.该文件指针(实现数组随机读写)可以通过

【C++】文件的读取与写入

C++的文件读取与写入感觉比起其它语言特别地难,对比起<[Python]文件读写操作>(点击打开链接).<[php]让记事本成为你调控变量的控制台>(点击打开链接)与<[Java]输入与输出与JDK1.5之后的新型字符串StringBuilder>(点击打开链接),C++最大的特点就是文件的输入流与输出流分开,同时最关键的是自身并没有字符串变量,在其文件的读取方法变量限制于字符数组char[],需要利用到一个二维的字符数组char[][]才能完事. 同时由于各大的编译器

Java File类(文件的读取,写入,复制与重命名)

文件的重命名   file.reNameTo() public boolean renameTo(File dest) 重新命名此抽象路径名表示的文件. 此方法行为的许多方面都是与平台有关的:重命名操作无法将一个文件从一个文件系统移动到另一个文件系统,dest为新命名的抽象文件 public boolean ReName(String path,String newname) {//文件重命名 //Scanner scanner=new Scanner(System.in); File file

python中文件的读取与写入以及os模块

1.文件读取的三部曲:打开 ---> 操作 ----> 关闭 r(默认参数):-只能读,不能写-读取文件不存在 会报错FileNotFoundError: [Errno 2] No such file or directory: '/tmp/westos' w(写)-write only-文件不存在的时候,会自动创建新的文件-文件存在的时候,会清空文件内容并写入新的内容 a(追加):-write only-写:不会清空文件的内容,会在文件末尾追加-写:文件不存在,不会报错,会创建新的文件并写入

《程序实现》从xml、txt文件里读取数据写入excel表格

直接上码 import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; impo

c++学习笔记—c++对txt文件的读取与写入

一.文件的输入输出 头文件fstream定义了三个类型支持文件IO:ifstream从给定文件读取数据.ofstream向一个给定文件写入数据.fstream读写给定数据.这些类型与cin和cout的操作一样,我们可以用IO操作符来读写文件,还可以用getline从一个ifstream读取数据. 1.getline()函数 getline的函数原型为: [cpp] view plaincopy istream& getline(istream&  is, string& str, 

java中文件的读取和写入

//首先要顶一个file文件用来存放要读取的文件 File f=new File("c:/test/aa.txt"); //在实例化一个输入流,并把文件对象传到里面 FileInputStream inputStream=new FileInputStream(f); //定义一个字节数组,用来存放读取的内容 byte [] b=new byte[(int)f.length()]; int len=0; int temp=0; while((temp=inputStream.read(