当前位置: 代码迷 >> Java相关 >> [讨论]关于IO既问题
  详细解决方案

[讨论]关于IO既问题

热度:244   发布时间:2006-11-29 22:17:05.0
[讨论]关于IO既问题

我写了一个小程序,意思是说从2.txt里复制一行文字到1.txt里面,但是程序写了出来,编译也通过了,
但是运行的时候呢,就是不能执行这个复制操作.想不明白,所以请大家帮忙帮忙

import java.io.*;

public class io1
{
Writer w;
BufferedReader in;
String s;
public io1()
{
try {
w = new FileWriter(new File("c://1.txt"));
in = new BufferedReader(new FileReader(new File("c://2.txt")));
s=in.readLine();
System.out.println(s) ;
w.write(s);
w.close();
in.close();
}
catch(Exception e)
{}
}
public static void main(String[] args) {
new io();
}
}

搜索更多相关的解决方案: 执行  public  import  

----------------解决方案--------------------------------------------------------

import java.io.*;

public class io1
{
Writer w;
BufferedReader in;
String s;
public io1()
{
try {
w = new FileWriter(new File("c://1.txt"));
in = new BufferedReader(new FileReader(new File("c://2.txt")));
s=in.readLine();
while(s!=null){
System.out.println(s) ;
w.write(s+"\r\n");
s=in.readLine();
}

w.close();
in.close();
}
catch(Exception e)
{}
}
public static void main(String[] args) {
new io1();
}
}
是不是应该这样


----------------解决方案--------------------------------------------------------
但是我的S是读取了一整行的字符哦,不是一个一个地读呀.

[此贴子已经被作者于2006-11-30 13:42:12编辑过]



----------------解决方案--------------------------------------------------------
我编译了一下,发现真的行哦,但是我有一个问题,我查看了一下java的API 它的里面的BufferedReader 这个类的一个方法readLine是读取一整行的字符 你看它的返回值都是一个String 类型了,为什么用FileReader把  S  写入 1.txt的时候要用一个一个字符来写呢?
----------------解决方案--------------------------------------------------------
  刚才看过了java的API 原来 我当时看错了,原来BufferedWriter里面的write原来没有好似BufferedReader那样有类似readLine的功能可以写一整行的,那为什么java有没有提供类可以写入String类型的方法呢?不会是自己要实现嘛?
----------------解决方案--------------------------------------------------------
没有一个字符来写啊,也是写的字符串啊

----------------解决方案--------------------------------------------------------
那么为什么要用一个while(true)的循环来写那个
while(s!=null){
System.out.println(s) ;
w.write(s+"\r\n"); 这样不是一个字符一个字符的写吗?虽然在API中说是写一个String类型但是后面的参数
                     是用offset来指定String中每一个字符的位置呀.
s=in.readLine();
----------------解决方案--------------------------------------------------------

你看看java.io.Writer这个类里面的read(String str);

write
public void write(String str)
throws IOException写入字符串。

参数:
str - 要写入的字符串
抛出:
IOException - 如果发生 I/O 错误

java.io.Writer (implements java.lang.Appendable, java.io.Closeable, java.io.Flushable)
java.io.BufferedWriter
java.io.CharArrayWriter
java.io.FilterWriter
java.io.OutputStreamWriter
java.io.FileWriter
java.io.PipedWriter
java.io.PrintWriter
java.io.StringWriter
下面的都是Writer的子类


----------------解决方案--------------------------------------------------------
上面这个符号表示什么意思啊??  "\r\n"
----------------解决方案--------------------------------------------------------
那样我从BufferedWriter类里的Writer是这样的哦.还有呀可能大家误会了,我指的是BufferedWriter类呀,不是指Writer类呀,Writer类的确是有一个Writer是写一个String类型的参数,
   这是BufferedWriter的一个Write方法
   void write(String s, int off, int len)
    Write a portion of a String.
----------------解决方案--------------------------------------------------------
  相关解决方案