it is a question about java
import java.io.*;
class Test
{
public static void main(String[]args) throws IOException
{
int i;
FileInputStream r;
FileOutputStream r1;
try
{
r=new FileInputStream("E:\1.txt");
}
catch(FileNotFoundException e)
{
System.out.println("1");
return;//干什么作用啊
}
try
{
r1=new FileOutputStream("E:\2.txt");
}
catch(FileNotFoundException e)
{
System.out.println("2");
return;
}
try
{
while((i=r.read())!=-1)
{
r1.write(i);
}
}
catch(IOException e)
{
System.out.println("3");//why here don't have return,this word
}
r.close();
r1.close();
}
}
why i can not achieve functional?
人气:458 ℃ 时间:2020-09-24 14:11:55
解答
无法实现这个功能是因为下面这句写错了
r=new FileInputStream("E:\1.txt");
括号里的文件路径的斜杠要用\\,因为\在JAVA里是转义字符.
至于那些return的作用,我先说下整体功能.
根据你在注释里的三个提问,我分三点来写:
1)首先,获取一个读入文件的路径,
如果文件不存在就会发生读取失败.程序不再往下执行,所以用了return返回,因为是在main方法中,所以程序结束.
2)如果1)通过了,那么就获取一个写入文件的路径,return作用一样.
3)文件只要被打开了,那么无论如何都要在结束的之前把它关闭,这里因为打开了文件,假若发生了异常,也就是得不到所要的结果,如果此时还是return,那么文件将没有被关闭.占用的内存不会被释放.
推荐
猜你喜欢
- 漫天飞舞的雪花像什么,造一个比喻句.仿例句:梦像一条小鱼,在水里游来游去,想捉它,它已经跑了.
- 已知x+y=-2,xy=-1,求y+1/x+1+x+1/y+1的值.
- 甲袋中有一只白球,两只红球,三只黑球.乙袋中有两只白球,三
- 分解因式:x的立方(a-2b)+x的平方(2b-a);4a(a-b)的立方-6b(b-a)的立方;因式分解:39x37-13x3的4次方
- (2x+A)的平方=4x的平方-8x+B,则A=?B=?
- He was astonished at what he found.
- 3、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( ).(1分) A、7 B、8 C、6 D、2
- 已知矩形A的长宽分别是2和1,那么是否存在另一个矩形B,它的周长和面积分别是矩形A的周长和面积的2倍?