精华内容
下载资源
问答
  • Java 实现复制文本文件的两种方法

    千次阅读 2016-08-26 15:55:21
    Java实现复制文本文件的两种方法 FileChannel这个类是继承于抽象类AbstractInterruptibleChannel,实现了接口ByteChannel,GatheringByteChannel,ScatteringByteChannel。 FileChannel这个是最便捷的方法实现复制...

    Java实现复制文本文件的两种方法

    FileChannel这个类是继承于抽象类AbstractInterruptibleChannel,实现了接口ByteChannel,GatheringByteChannel,ScatteringByteChannel。

    FileChannel这个是最便捷的方法实现复制文件,当然也有一种笨的方法实现复制文件,用读取文件,创建文件,写入文件的方法实现FileChannel这个方法

    FileChannel 方法实现复制文本

    public class MainCopy {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		FileChannel in=null;
    		FileChannel out=null;
    		File f1=new File("channel1.txt");
    		File f2=new File("channel2.txt");
    		
    		try {
    			in=new FileInputStream(f1).getChannel();
    			ByteBuffer byteBu=in.map(FileChannel.MapMode.READ_ONLY, 0,f1.length());
    			out=new FileOutputStream(f2).getChannel();
    			out.write(byteBu);
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}finally{
    			try {
    				in.close();
    				out.close();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    		
    	}
    
    }

    用读写文件的方法实现

    <pre name="code" class="java">public class MainCopy2 {
    	static PrintWriter pw=null;
    
    	/**
    	 * @param args
    	 * @throws IOException 
    	 */
    	public static void main(String[] args) throws IOException {
    		// TODO Auto-generated method stub
    		//读取文件
    		InputStream in=new FileInputStream("channel1.txt");
    		InputStreamReader iread=new InputStreamReader(in);
    		BufferedReader bf=new BufferedReader(iread);
    		//复制文件
    		File f2=new File("channel2.txt");
    		OutputStream os=new FileOutputStream(f2);
    		OutputStreamWriter ow=new OutputStreamWriter(os);
    	    pw=new PrintWriter(ow);
    		String len=null;
    		while((len=bf.readLine())!=null){
    			copyfile(len);
    		}
    		bf.close();
    		pw.close();
    	}
    	//复制两个文件的内容
    	static void copyfile(String content) throws FileNotFoundException{
    		pw.println(content);
    	}
    
    }


    
    

    展开全文
  • 中关村黑马程序员 — 复制文本文件的两种方法 ——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- 第一种方法通过字符流两个缓冲区BufferedReader和BufferedWriter来复制文件 步骤: 1.创建一...

    中关村黑马程序员 — 复制文本文件的两种方法

    ——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

     第一种方法通过字符流的两个缓冲区BufferedReader和BufferedWriter来复制文件
      步骤:
            1.创建一个读取流对象new FileReader(fileName)和文件相关联。
            2.创建一个读取流 的缓冲对象new BufferedReader( FileReader); 
            将需要被提高效率的流对象new FileReader(fileName)作为参数传递给缓冲区对象new BufferedReader( FileReader)的构造函数即可。
            3.创建一个字符写入流对象。 new FileWriter(fileName)和文件相关联
            4.创建一个 写入流 的缓冲对像new BufferedWriter(FileWriter );
              将需要被提高效率的流对象new FileWriter(fileName)作为参数传递给缓冲区对象new BufferedWriter( FileWriter )的构造函数即可。
           5.调用读流缓冲区对象new BufferedReader( FileReader)的功能方法readLine()读取文件数据字符, 并用while循环语句来读取文件里的所有数据
           6.分别调用缓冲区对象new BufferedReader( FileReader)的功能方法bufw.write(line),bufw.newline(), bufw.flush()来对文件的数据进行操作
    

    import java.io.*;
    class Bufferwr
    {
    public static void main(String[] args)

    {        
        //建立字符输入输出流的引用,便于整个类的使用
           BufferedReader bufr =null;
           BufferedWriter bufw =null;
    
            try
            {  
    
                 //建立字符输入流,关联文件A.java  进行异常处理
                 FileReader fr = new FileReader("A.java");
                  bufr =new BufferedReader(fr);
    
                     //建立字符输出流,关联文件 B.txt   
                  FileWriter fw = new FileWriter("B.txt");            
                   bufw = new BufferedWriter(fw);   
            // String line = bufr.readLine();
               String line =null;
                          //while循环,把读取的数据存写入到新建文件B.txt   
             while ((line =bufr.readLine())!=null)
    
             {
                 bufw.write(line);
                 bufw.newLine();
                 bufw.flush();
             }
            }
            catch (IOException e)
            {  
                System.out.println(e.toString());
            //或throw new RuntimeException("缓冲区读写失败异常");
            }
            finally
             {  //  必须要执行的代码,并进行异常处理
                  bufr.close()             
                 try
                 {  if(bufr!=null)
                    bufr.close();
                 }
                 catch (IOException e)
                 {
                 System.out.println(e.toString());
                //或throw new RuntimeException("缓冲区读流关闭失败异常");
                 }
    
                   try
                 {  if(bufw!=null)
                    bufw.close();
                 }
                 catch (IOException e)
                    System.out.println(e.toString());
                //或throw new RuntimeException("缓冲区写流关闭失败异常");
                 }
    
              }
    
    
    
    
    
    
          FileReader fr = new FileReader("A.java");
        BufferedReader bufr =new BufferedReader(fr);
    
         FileWriter fw = new FileWriter("B.txt");
         BufferedWriter burw = new BufferedWriter(fw);
    
    
        System.out.println("Hello World!");
    
    
    
    }
    

    }

    第二种方法通过字符流FileWriter和 FileReader复制来文件
    步骤;1.创建一个new FileWriter(fileName)对象。该对象一被初始化就必须要明确被操作的文件。
    在相应的目录下会自动建立一个文件fileName

        2.创建一个文件读取流对象new FileReader(fileName);,和指定名称的文件相关联。此文件fileName 已经预先存在内有数据,如果不存在,FileNotFoundException会发生异常
      3.自定义一个字符数组 char[] buf =new char[1204]。用于存储读到文件fileName的数据字符。
        //该read(char[])返回的是读到字符个数。
       4.调用读取流对象new FileReader(fileName)的功能方法read(char[]) 把读取到的字符都存储到数组里char[],往数组里读取了len次
    
    
      5.调用new FileWriter(fileName)对象的功能方法write(char[],off,len) ,把数组中的所欲数据写入流对象 创建的文件里
    
    6.  写入流对象FileWriter fw =new FileWriter("B.txt");读取流对象FileReader fr =new FileReader("A.java");
         中转站数组 char[] buf = new char[1024];
    

    public static void main(String[] args)
    {
    //建立字符输入输出流 引用
    FileWriter fw=null;
    FileReader fr =null;
    try
    {
    //建立字符输入输出流对象 fw fr 并异常处理
    fw =new FileWriter(“B.txt”);
    fr =new FileReader(“A.java”);
    char[] buf = new char[1024];

     //int len =fr.read(buf);
            int len =0;
          //while循环  把出数组读取的数据写入到新建文件B.txt里
                 while((len = fr.read(buf))=-1)
                    {
                     fw.write(char[],0,len);
                 }
        }
        catch (IOException e)
        {
    
                  System.out.println(e.toString());
                //或throw new IOException ("写读流失败异常");
        }
        finally
              {
                if(fw!=null)
                  //fw.close()是必须执行代码,放在finally{},并进行异常处理   
                try
                {
                    fw.close();
                }
                catch (IOException e)
                { System.out.println(e.toString());
                //或throw new IOException ("写流关闭失败异常");
                }
    
                if(fr!=null)
    
                try
                {
                        fr.close();
                }
                catch (IOException e)
                { System.out.println(e.toString());
                //或throw new IOException ("读流关闭失败异常");
                }
    
          }
    

    }

    展开全文
  • 网页中文本复制的两种方法

    千次阅读 2004-08-30 16:57:00
    放到你的个人网页上,其中有些源代码可以让用户直接复制,如果你把代码直接写成到一个或者当中,当用户复制了你的网页中的代码,在某些编辑器里,你提供的代码会带有HTML的标签,这是因为网页文本的复制是HTML代码的...

    适用于:IE5.X及之上版本

    在某些情况下,我们希望在我们网页中的一些文字很方便的提供给用户复制的功能。比如你的编写了一个HTML或者C#的教程,放到你的个人网页上,其中有些源代码可以让用户直接复制,如果你把代码直接写成到一个<P>或者<DIV>当中,当用户复制了你的网页中的代码,在某些编辑器里,你提供的代码会带有HTML的标签,这是因为网页文本的复制是HTML代码的复制。

    为了解决这个问题,通常我们采用下面的方法。
    一、使用TextArea存放复制文本
    由于从网页的Form对象中复制的文本是不转成HTML代码的纯文本,所以通常情况下,网页中
    的复制文本都采用TextArea来存放。下面提供了例子,代码如下:
    TextAreaTest.htm

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>Text Area Test</title>
    </head>

    <body>
    <textarea id="inbuiltCodeByText" readonly="true" style="BORDER-RIGHT: #000 1px solid; BORDER-TOP: #000 1px solid; BORDER-LEFT: #000 1px solid; WIDTH: 100%; BORDER-BOTTOM: #000 1px solid; HEIGHT: 10em">
    &lt;TABLE cellSpacing=1 cellPadding=1 width="75%" border=1&gt;
    &lt;TR&gt;
    &lt;TD&gt;&lt;/TD&gt;
    &lt;TD&gt;&lt;/TD&gt;
    &lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;
    &lt;TR&gt;
    &lt;TD&gt;&lt;/TD&gt;
    &lt;TD&gt;&lt;/TD&gt;
    &lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;
    &lt;TR&gt;
    &lt;TD&gt;&lt;/TD&gt;
    &lt;TD&gt;&lt;/TD&gt;
    &lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;
    </textarea>
    </div>
    <p><input name="btnCopy" type="button" id="btnCopy" οnclick="window.clipboardData.setData('Text',inbuiltCodeByText.value)" value="Copy Text">
    &nbsp;&nbsp;<input name="btnSelect" type="button" id="btnSelect" οnclick="inbuiltCodeByText.select()" value="Select Text">
    </p>
    </p>

    </body>
    </html>


    这段html中的textarea里存放了一段html的表格代码,此外还提供了两个按钮,一个点击之后复制textarea中的文本,一个点击之后选择textarea中的文本。clipboardData对象提供了一个setData方法,用来设置网页的剪贴板中的数据。Form对象都有一个select()方法,可以用来选择Form对象中文本或值。

    textarea是很常见的存放复制文本的对象,但是如果你希望你的代码中某些重点部分能够加上颜色或者加重,就像程序代码编辑器中一样,就没有办法实现了,因为textarea中的都是纯文本。

    我这里有一个方法可以实现你需要的代码效果,而且复制的文本也不带有html标签。

    二、使用div存放复制文本
    前面我们已经提到过clipboardData对象的setData方法,可以设置网页的剪贴板中数据。将复制文本放在div中通过setData方法改变复制文本,同时div中的文本是可以设置样式的,这就实现了我们想要得效果,下面是一个范例,代码如下:
    DivTextTest.htm

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>Div Text Test</title>
    </head>

    <body>
    <div id="inbuiltCodeByDiv" style="BORDER-RIGHT: #000 1px solid; BORDER-TOP: #000 1px solid; OVERFLOW: auto; BORDER-LEFT: #000 1px solid; WIDTH: 100%; CURSOR: text; BORDER-BOTTOM: #000 1px solid; HEIGHT: 10em" οncοpy="window.clipboardData.setData('Text',this.innerText)">
     <span style="color:red">&lt;TABLE cellSpacing=1 cellPadding=1 width=&quot;75%&quot; border=1&gt;</span><br>
     &lt;TR&gt;<br>
     &lt;TD&gt;&lt;/TD&gt;<br>
     &lt;TD&gt;&lt;/TD&gt;<br>
     &lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;<br>
     &lt;TR&gt;<br>
     &lt;TD&gt;&lt;/TD&gt;<br>
     &lt;TD&gt;&lt;/TD&gt;<br>
     &lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;<br>
     &lt;TR&gt;<br>
     &lt;TD&gt;&lt;/TD&gt;<br>
     &lt;TD&gt;&lt;/TD&gt;<br>
     &lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;
    </div>
    <p>
    &nbsp;<input type="button" value="Copy Text Code" id="btnCopyText" οnclick="window.clipboardData.setData('Text',inbuiltCodeByDiv.innerText)">
    &nbsp;&nbsp;<input type="button" value="Copy HTML Code" id="btnCopyHTML" οnclick="window.clipboardData.setData('Text',inbuiltCodeByDiv.innerHTML)">
    &nbsp;&nbsp;<input type="button" value="Select Text" id="btnSelectText" οnclick="var cr=document.body.createTextRange();cr.moveToElementText(document.getElementById('inbuiltCodeByDiv'));cr.select()">
    </p>
    </body>
    </html>

    这段代码演示了一个存放在div中table html代码,第一行设置为红色,还提供有三个按钮来处理复制文本,复制html和选择文本。对于不使用按钮复制的,我们通过div的oncopy事件来改变剪贴板文本。

    本文主要介绍了不同于textarea的网页复制文本的存放对象的使用方法,测试代码在ie5.x及之上通过,对于其他厂商的浏览器,上述代码不支持。

    展开全文
  •  如果不想让浏览器缓存input值,有2种方法:  方法一:  在不想使用缓存input中添加 XML/HTML Code复制内容到剪贴板 autocomplete="off";eg: <input type="text" autocomplete="off" name="test" /...
  • 需求:把当前目录下a.txt,复制到当前目录下b.txt 数据源: a.txt--读取数据--字符流转换--InputStreamReader 目的地: b.txt--写出数据--字符流转换--OutputStreamWriter */ public class Test { public ...
    import java.io.*;
    
    /*
    需求:把当前目录下的a.txt,复制到当前目录下的b.txt
    
    数据源:
    a.txt--读取数据--字符流转换--InputStreamReader
    目的地:
    b.txt--写出数据--字符流转换--OutputStreamWriter
     */
    public class Test {
        public static void main(String[] args) throws IOException {
            //封装数据源
            InputStreamReader isr=new InputStreamReader(new FileInputStream("a.txt"));
    
            //封装目的地
            OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("b.txt"));
    
    //        //读取并写入数据方法1:
    //        int ch=0;
    //        while ((ch=isr.read())!=-1){
    //            osw.write(ch);
    //        }
    
            //方法2
            char[] chs=new char[1024];
            int len=0;
            while ((len=isr.read(chs))!=-1){
                osw.write(chs,0,len);
                //osw.flush():当我们写的东西是很大的东西的时候,可能就要flush了,几百上千兆?
            }
    
            //释放资源
            isr.close();
            osw.close();
    
        }
    }
    
    
    展开全文
  • 通过参考其他博主,得出两种复制的方法。 方法一:将需要复制的文本放在<text></text>标签中,将text标签的属性selectable的值为true。通过手机对文本的复制功能实现复制。 <text selectable='...
  • 网上的方法大致有这样几: 1、使用操作系统提供的复制文件的API 2、使用C语言本身提供的复制文件的函数 3、直接读写文件,从文件角度来操作,从而直接将一个文件复制   这里我们使用的就是这第三。   ...
  • IO流   IO(Input/Output):输入和输出,指是某个设备或环境进行数据输入或输出,Java将...字符流 例:word文件、java文件可以理解为文本,我们能直接能读懂都可以认为是字符流 输出流 字节流 例:图片文件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 841
精华内容 336
关键字:

两种复制文本的方法