public class xx{
public static void main(String args []) throws Exception{
FileInputStream f = new FileInputStream("F:\\rublish\\c.txt");
BufferedReader dr=new BufferedReader(new InputStreamReader(f));《《《《《------
*************************************************************
这个读取文件怎么用两个对象 多了一步字节流到字符型的转换??
我看了一句话还可以理解 { 所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列.}
**********************************************
如果这样那么下面的程序怎么直接用字符读取文件
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
int b = 0;
FileReader in = null;
FileWriter out = null;
try {
in = new FileReader("c:\\HelloWorld.txt");《《《-----
out = new FileWriter("c:\\HW.txt");《《《《《《---
访问文件必须用InputStream类吗???
14 个解决方案
#1
无法理解LZ到底想说什么
in = new FileReader("c:\\HelloWorld.txt");不就是不用InputStream访问文件么 ?怎么还会有最后一个问题呢
in = new FileReader("c:\\HelloWorld.txt");不就是不用InputStream访问文件么 ?怎么还会有最后一个问题呢
#2
不是的 FileReader是Reader的子类 不是InputStream子类
#3
你问“访问文件必须用InputStream类吗???”
又给出了不是“不是InputStream子类”的FileReader访问文件的代码
那答案不是很明显么 访问文件不是必须用InputStream类
又给出了不是“不是InputStream子类”的FileReader访问文件的代码
那答案不是很明显么 访问文件不是必须用InputStream类
#4
使用Reader读取文件比较快速,因为它按字符来读取。
API中有句话,“FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader”
API中有句话,“FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader”
#5
java读取文件的方式分为两种:一种是Reader《字符流》,一种是InputStream《字节流》,他们两个是平级的,没有继承关系。但是可以通过InputStreamReader进行转换,将InputStream《字节流》转换为Reader《字符流》,提高读取效率。
#6
能帮我看个拷贝文件的程序吗??实现A中的文本到B 接着B的最后一个字符而
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
int b = 0,c=0;
FileReader in = null;
FileWriter out = null;
FileReader in1=null;
try {
in = new FileReader("c:\\HelloWorld.txt");
out = new FileWriter("c:\\HW.txt");
in1=new FileReader("c:\\HW.txt");
while((c=in1.read())==-1){?????????//}《《----------------
while((b=in.read())!=-1){
out.write(b);
System.out.write(b);
}
out.close();
in.close();
} catch (FileNotFoundException e2) {
System.out.println("找不到指定文件"); System.exit(-1);
} catch (IOException e1) {
System.out.println("文件复制错误"); System.exit(-1);
}
System.out.println("文件已复制");
}
}
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
int b = 0,c=0;
FileReader in = null;
FileWriter out = null;
FileReader in1=null;
try {
in = new FileReader("c:\\HelloWorld.txt");
out = new FileWriter("c:\\HW.txt");
in1=new FileReader("c:\\HW.txt");
while((c=in1.read())==-1){?????????//}《《----------------
while((b=in.read())!=-1){
out.write(b);
System.out.write(b);
}
out.close();
in.close();
} catch (FileNotFoundException e2) {
System.out.println("找不到指定文件"); System.exit(-1);
} catch (IOException e1) {
System.out.println("文件复制错误"); System.exit(-1);
}
System.out.println("文件已复制");
}
}
#7
Reader和InputStream的使用是看读取文件的格式;一般记事本之类的文件都是用Reader,图像数据之类的原始字节用InputStream,具体适用范围还请查看API
#8
能帮我看看上面的拷贝文件的程序吗 怎么控制实现不会讲B的文件覆盖啊???
#9
这个啊~!我看看吧~!
#10
这个可以
#11
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class FileCopy {
public static void main(String[] args) {
BufferedReader reader = null;
BufferedWriter writer =null;
String line = "";
try {
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("H:\\zyus2.txt", true)));
reader = new BufferedReader(new FileReader("H:\\zyus1.txt"));
while((line = reader.readLine()) != null){
writer.write(line);
}
reader.close();
writer.close();
} catch (FileNotFoundException e2) {
System.out.println("找不到指定文件");
} catch (IOException e1) {
System.out.println("文件复制错误");
}
System.out.println("文件已复制");
}
}
#12
楼上可以
#13
public static void main( String[] args )
{
int b = 0;
FileReader in = null;
FileWriter out = null;
try
{
in = new FileReader( "c:\\HelloWorld.txt" );
out = new FileWriter( "c:\\HW.txt", true );
while( ( b = in.read() ) != -1 )
{
out.write( b );
System.out.write( b );
}
out.close();
in.close();
}
catch( FileNotFoundException e2 )
{
System.out.println( "aaa" );
}
catch( IOException e1 )
{
System.out.println( "bbb" );
}
System.out.println( "ccc" );
}
#14
现在一般读写文件都会用BufferedReader和BufferedWriter包装一下,BufferedReader的readLine()方法很不错的。有点不明白为什么 11楼 既然用了FileReader类,为什么不用FileWriter类
#1
无法理解LZ到底想说什么
in = new FileReader("c:\\HelloWorld.txt");不就是不用InputStream访问文件么 ?怎么还会有最后一个问题呢
in = new FileReader("c:\\HelloWorld.txt");不就是不用InputStream访问文件么 ?怎么还会有最后一个问题呢
#2
不是的 FileReader是Reader的子类 不是InputStream子类
#3
你问“访问文件必须用InputStream类吗???”
又给出了不是“不是InputStream子类”的FileReader访问文件的代码
那答案不是很明显么 访问文件不是必须用InputStream类
又给出了不是“不是InputStream子类”的FileReader访问文件的代码
那答案不是很明显么 访问文件不是必须用InputStream类
#4
使用Reader读取文件比较快速,因为它按字符来读取。
API中有句话,“FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader”
API中有句话,“FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader”
#5
java读取文件的方式分为两种:一种是Reader《字符流》,一种是InputStream《字节流》,他们两个是平级的,没有继承关系。但是可以通过InputStreamReader进行转换,将InputStream《字节流》转换为Reader《字符流》,提高读取效率。
#6
能帮我看个拷贝文件的程序吗??实现A中的文本到B 接着B的最后一个字符而
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
int b = 0,c=0;
FileReader in = null;
FileWriter out = null;
FileReader in1=null;
try {
in = new FileReader("c:\\HelloWorld.txt");
out = new FileWriter("c:\\HW.txt");
in1=new FileReader("c:\\HW.txt");
while((c=in1.read())==-1){?????????//}《《----------------
while((b=in.read())!=-1){
out.write(b);
System.out.write(b);
}
out.close();
in.close();
} catch (FileNotFoundException e2) {
System.out.println("找不到指定文件"); System.exit(-1);
} catch (IOException e1) {
System.out.println("文件复制错误"); System.exit(-1);
}
System.out.println("文件已复制");
}
}
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
int b = 0,c=0;
FileReader in = null;
FileWriter out = null;
FileReader in1=null;
try {
in = new FileReader("c:\\HelloWorld.txt");
out = new FileWriter("c:\\HW.txt");
in1=new FileReader("c:\\HW.txt");
while((c=in1.read())==-1){?????????//}《《----------------
while((b=in.read())!=-1){
out.write(b);
System.out.write(b);
}
out.close();
in.close();
} catch (FileNotFoundException e2) {
System.out.println("找不到指定文件"); System.exit(-1);
} catch (IOException e1) {
System.out.println("文件复制错误"); System.exit(-1);
}
System.out.println("文件已复制");
}
}
#7
Reader和InputStream的使用是看读取文件的格式;一般记事本之类的文件都是用Reader,图像数据之类的原始字节用InputStream,具体适用范围还请查看API
#8
能帮我看看上面的拷贝文件的程序吗 怎么控制实现不会讲B的文件覆盖啊???
#9
这个啊~!我看看吧~!
#10
这个可以
#11
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class FileCopy {
public static void main(String[] args) {
BufferedReader reader = null;
BufferedWriter writer =null;
String line = "";
try {
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("H:\\zyus2.txt", true)));
reader = new BufferedReader(new FileReader("H:\\zyus1.txt"));
while((line = reader.readLine()) != null){
writer.write(line);
}
reader.close();
writer.close();
} catch (FileNotFoundException e2) {
System.out.println("找不到指定文件");
} catch (IOException e1) {
System.out.println("文件复制错误");
}
System.out.println("文件已复制");
}
}
#12
楼上可以
#13
public static void main( String[] args )
{
int b = 0;
FileReader in = null;
FileWriter out = null;
try
{
in = new FileReader( "c:\\HelloWorld.txt" );
out = new FileWriter( "c:\\HW.txt", true );
while( ( b = in.read() ) != -1 )
{
out.write( b );
System.out.write( b );
}
out.close();
in.close();
}
catch( FileNotFoundException e2 )
{
System.out.println( "aaa" );
}
catch( IOException e1 )
{
System.out.println( "bbb" );
}
System.out.println( "ccc" );
}
#14
现在一般读写文件都会用BufferedReader和BufferedWriter包装一下,BufferedReader的readLine()方法很不错的。有点不明白为什么 11楼 既然用了FileReader类,为什么不用FileWriter类