我正在测试一些我需要在Java学校项目中实现的代码。
public class Prova {
public static void main(String[] args){
System.out.println(args.length);
for(int i = 0; i < args.length; i++){
System.out.print(args[i]);
}
System.out.print("\nEnd!");
}
}
当java Prova < test.dot
文件的内容为:{/ p>时,我输入控制台test.dot
digraph G1 {
c -> e;
a -> e;
a -> f;
f -> b;
g;
}
我得到这个:
C:\Users\Lorenzo\workspace\Progetto_ASD\bin>java Prova < test.dot
0
End!
我尝试java Prova > output.txt
只是为了查看管道是否正常工作(我得到与上面相同但在文件中)。
如果我尝试type test.dot
,我会:
C:\Users\Lorenzo\workspace\Progetto_ASD\bin>type test.dot
digraph G1 {
c -> e;
a -> e;
a -> f;
f -> b;
g;
}
正如我所料。
我真的不知道我在做什么(我正在使用Windows)。
答案 0 :(得分:1)
您正在混合两种不同的方法:
args
您应该以{{1}}:
运行该程序
java Prova arg1 arg2 ... argn
可能你想改变
java Prova "digraph G1 {" "c -> e;" "a -> e;" "a -> f;" "f -> b;" g; }
到
System.out.print(args[i]);
有7个不同的行。
<强>重定向强>
这相当于一个接受键盘输入的程序。您可以将程序更改为:
System.out.println(args[i]);
然后致电
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Prova { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line; try { while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }
。
答案 1 :(得分:-1)
这是一个代码可以帮助你的例子 https://www.mkyong.com/java/how-to-read-file-in-java-fileinputstream
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadFileExample {
public static void main(String[] args) {
File file = new File("C:/robots.txt");
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
System.out.println("Total file size to read (in bytes) : "
+ fis.available());
int content;
while ((content = fis.read()) != -1) {
// convert to char and display it
System.out.print((char) content);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null)
fis.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
ps:您需要关闭流并释放任何资源以进行良好实践。