我正在尝试从远程计算机下载包含整数的文件,在本地增加整数值,将新值写入同一文件并上传文件。我用scp。它成功下载文件。我使用shell文件下载和上传进程。但我对Scanner
有疑问。
以下是代码:
import java.io.*;
import java.util.*;
public class shell {
public static void main(String[] args) throws IOException{
Runtime.getRuntime().exec("/home/ayyuce/Desktop/download.sh");
File f= new File("/home/ayyuce/Desktop/yeni.txt");
PrintWriter pw = new PrintWriter(f);
Scanner s= new Scanner(f);
int num=0;
if(s.hasNextLine()){
num=s.nextInt();
} else {
System.out.println("Error");
}
int increase=num++;
pw.println(increase);
Runtime.getRuntime().exec("/home/ayyuce/Desktop/upload.sh");
s.close();
pw.close();
}
}
输出为:Error
我想知道Scanner
有什么问题。
非常感谢你!
答案 0 :(得分:4)
PrintWriter pw = new PrintWriter(f);
来自javadoc
file - 要用作此writer的目标的文件。 如果 文件存在然后它将被截断为零大小; 否则,一个新的 文件将被创建。输出将被写入文件并且是 缓冲。
当然,Scanner
无法读取任何内容,因为该文件在new PrintWriter(f)
中被截断为零大小。