JavaIO InputStreamReader和OutputStreamWriter
——–读字符:——————-
I am groot
I am groot!
1 | `test.txt`文件中的内容: |
I am groot
I am groot!
1 | 需要注意的是,写文件的时候`test.txt`文件可以不存在,OutputStreamWriter会自动创建这文件,然后写入该文件中。但前提是可以找到`test.txt`这个文件的父路径。如果父路径不存在,会抛出异常:`FileNotFoundException`。 |
String fileName = “\new1\test222.txt”;
System.out.println(“写文件结束…”);
writeByOutputStreamWriter(fileName);
System.out.println(“写文件结束…”);
1 | 因为当前工作目录下没有`new1`这个文件夹,所以无法在`new1`目录下创建`test222.txt`这个文件。 |
Exception in thread “main” java.io.FileNotFoundException: \new1\test222.txt (系统找不到指定的路径。)
1 | # 应用:复制字符文件# |
while((size=in.read(cbuf, 0, cbuf.length))!=-1)
{
//然后把数字中读取到的字符写入到输出流中,注意读多少写多好,不要整个数组都写进去
out.write(cbuf, 0, size);
}
1 | 完整的代码: |
public static void copy(String from, String to)
{
InputStreamReader in=null;
OutputStreamWriter out=null;
try
{
in = new InputStreamReader(new FileInputStream(from),”gbk”);
//如果可以读了
if(in.ready())
{
out=new OutputStreamWriter(new FileOutputStream(to), “gbk”);
//缓存字符数组
char[] cbuf=new char[20];
int size;
//从输入流中读取一个数组的字符到数组中
while((size=in.read(cbuf, 0, cbuf.length))!=-1)
{
//然后把数字中读取到的字符写入到输出流中,注意读多少写多好,不要整个数组都写进去
out.write(cbuf, 0, size);
}
}
} catch (UnsupportedEncodingException | FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if(in!=null)
{
try{in.close();}
catch (IOException e)
{e.printStackTrace();}
}
if(out!=null)
{
try{out.close();}
catch (IOException e)
{e.printStackTrace();}
}
}
}
1 | 源文件: |
I am groot
I am groot!
1 | 测试: |
String from = “test.txt”;
String to = “copy.txt”;
copy(from, to);
1 | 运行后,当前工程目录下创建了一个`copy.txt`文件,文件中的内容如下: |
I am groot
I am groot!