2012-02-17 25 views
-1

我目前正在学习用于介绍CS类的Java。我有Python的初学者经验,我从eTextbook学习Python的难题(http://learnpythonthehardway.org/book/)了解到。读取Java与Python中的文件

我通过将本书中的Python源代码转换为Java源代码来学习Java。

我被困在打开和阅读Java文件。我想这个Python代码(在书中练习15)转换成Java:

from sys import argv 

script, filename = argv 

txt = open(filename) 

print "Here's your file %r:" % filename 
print txt.read() 

print "Type the filename again:" 
file_again = raw_input("> ") 

txt_again = open(file_again) 

print txt_again.read() 

这是我在Java中打开文件:

System.out.println("Type the filename again: "); 
Scanner in = new Scanner(System.in); 
String file_name = in.nextLine(); 
try 
{ 
    Scanner txt_again = new Scanner(new File(file_again)); 

} 
catch (IOException e) 
{ 
    System.out.println("Sorry but I was unable to open your file"); 
    e.printStackTrace(); 
    System.exit(0); 
} 

我如何输出打开的文件(一个文本文件)?另外,如何在Java中添加参数(即脚本,文件名)?

回答

1

对于读取文件,我建议以下网站:Read File With Java.

至于论据,我不知道,如果你的意思是进入程序本身(命令行参数),或谈论与扫描仪更多的投入。如果你正在谈论命令行参数,我会遵循Oracle Docs.

祝你好运。

1

如果你坚持使用扫描仪,这里是代码

// Read each line in the file 
    while(txt_again.hasNext()) { 
     // Read each line and display its value 
    System.out.println("First line: " + txt_again.nextLine()); 
     // String whole_txt = whole_txt + txt_again.nextLine(); if you want all the contents in one string. 
} 

或者你可以把它分配给一个字符串txt_name并打印了这一点。

http://www.functionx.com/java/Lesson23.htm

对于添加参数,添加String[] args在你的主函数的参数之一。

public static void main(String[] args) 

并访问参数作为ARGS [0],ARGS [1]等

0

谷歌番石榴具有用于读取整个文件到一个字符串,也用于读取一个文件分成行的列表的实用方法等

例如,

import java.io.File; 
import java.io.IOException; 
import java.util.Scanner; 

import com.google.common.base.Charsets; 
import com.google.common.io.Files; 

class Scratch { 

    public static void main(String[] args) throws IOException { 
     final String filename = args[0]; 

     final File txt = new File(filename); 

     System.out.println("Here's your file: " + filename); 
     System.out.println(Files.toString(txt, Charsets.UTF_8)); 

     System.out.print("Type the filename again: "); 

     final String fileAgain = new Scanner(System.in).nextLine(); 

     final File txt_again = new File(fileAgain); 
     System.out.println(Files.toString(txt_again, Charsets.UTF_8)); 
    } 
}