CS173: Intro to Computer Science - File I/O
Activity Goals
The goals of this activity are:- To interface with the hard drive or console for user input
- To catch exceptions and respond appropriately
The Activity
Directions
Consider the activity models and answer the questions provided. First reflect on these questions on your own briefly, before discussing and comparing your thoughts with your group. Appoint one member of your group to discuss your findings with the class, and the rest of the group should help that member prepare their response. Answer each question individually from the activity, and compare with your group to prepare for our whole-class discussion. After class, think about the questions in the reflective prompt and respond to those individually in your notebook. Report out on areas of disagreement or items for which you and your group identified alternative approaches. Write down and report out questions you encountered along the way for group discussion.Model 1: User Input with the Scanner
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import java.util.Scanner; public class Main { public static String getText(String prompt, Scanner in) { System.out.println(prompt); String result = in.nextLine(); return result; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String name = getText( "Enter your name:" , scanner); System.out.println( "Your name is: " + name); } } |
Questions
- What is
System.in
? - How would you use the
scanner
object to ask the user to enter their grade in the class; keep asking them to enter their grade until it is an A, B, C, D, or F. - The
Scanner
class also includes a function callednextInt
which returns a numeric value from the user. Write a program to ask the user to pick a number from 1 to 10 (again, keep prompting them until the value is within this range)!
Model 2: File Input
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import java.io.FileNotFoundException; import java.io.File; import java.util.Scanner; public class Main { public static void readLineByLine(String filePath) throws FileNotFoundException { File input = new File(filePath); Scanner scan = new Scanner(input); while (scan.hasNextLine()) { String line = scan.nextLine(); System.out.println(line); } } public static void main(String[] args) { String path = "test.txt" ; try { readLineByLine(path); } catch (FileNotFoundException e) { System.err.println( "File not found!" ); e.printStackTrace(); } } } |
Questions
- What do you think
try
andthrows
mean? - What happens if a file path that doesn't exist (or that you don't have permission to open) is passed to your function? Try it and find out!
- What do you think
System.err
does?