Untitled
unknown
plain_text
2 years ago
3.1 kB
5
Indexable
package intermediate; import com.sandwich.koan.Koan; import java.io.*; import java.util.logging.Logger; import static com.sandwich.koan.constant.KoanConstants.__; import static com.sandwich.util.Assert.assertEquals; public class AboutFileIO { @Koan public void fileObjectDoesntCreateFile() { File f = new File("i-never.exist"); assertEquals(f.exists(), false); } @Koan public void fileCreationAndDeletion() throws IOException { File f = new File("foo.txt"); f.createNewFile(); assertEquals(f.exists(), true); f.delete(); assertEquals(f.exists(), false); } @Koan public void basicFileWritingAndReading() throws IOException { File file = new File("file.txt"); FileWriter fw = new FileWriter(file); String data = "First line\nSecond line"; fw.write(data); fw.flush(); fw.close(); char[] in = new char[data.length()]; int size = 0; FileReader fr = new FileReader(file); size = fr.read(in); // No flush necessary! fr.close(); assertEquals(size, 22); String expected = new String(in); assertEquals(expected.length(), 22); assertEquals(expected, data); file.delete(); } @Koan public void betterFileWritingAndReading() throws IOException { File file = new File("file.txt"); file.deleteOnExit(); FileWriter fw = new FileWriter(file); PrintWriter pw = new PrintWriter(fw); pw.println("First line"); pw.println("Second line"); pw.close(); FileReader fr = new FileReader(file); BufferedReader br = null; try { br = new BufferedReader(fr); assertEquals(br.readLine(), "First line"); // first line assertEquals(br.readLine(),"Second line"); // second line assertEquals(br.readLine(), null); // what now? } finally { // anytime you open access to a file, you should close it or you may // lock it from other processes (ie frustrate people) closeStream(br); } } private void closeStream(BufferedReader br) { if (br != null) { try { br.close(); } catch (IOException x) { Logger.getAnonymousLogger().severe("Unable to close reader."); } } } @Koan public void directChainingForReadingAndWriting() throws IOException { File file = new File("file.txt"); PrintWriter pw = new PrintWriter(file); pw.println("1. line"); pw.println("2. line"); pw.close(); FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); StringBuffer sb = new StringBuffer(); String str = ""; while((str = br.readLine()) != null) { sb.append(str); } // Add the loop to go through the file line by line and add the line // to the StringBuffer assertEquals(sb.toString(), "1. line2. line"); } }
Editor is loading...