11package test ;
22
33import java .io .BufferedOutputStream ;
4+ import java .io .BufferedReader ;
5+ import java .io .BufferedWriter ;
46import java .io .DataInputStream ;
57import java .io .DataOutputStream ;
8+ import java .io .File ;
69import java .io .FileInputStream ;
710import java .io .FileOutputStream ;
11+ import java .io .FileReader ;
812import java .io .FileWriter ;
913import java .io .IOException ;
1014import java .io .PrintWriter ;
1317import java .nio .channels .FileChannel ;
1418import java .nio .channels .FileLock ;
1519import java .nio .channels .OverlappingFileLockException ;
20+ import java .nio .file .Files ;
21+ import java .nio .file .Path ;
22+ import java .nio .file .Paths ;
23+
1624import junit .framework .TestCase ;
1725
1826public class TestWriter extends TestCase {
1927
2028 private String fileName = "test.txt" ;
2129 private String fileName1 = "test1.txt" ;
2230 private String fileName2 = "test2.txt" ;
31+ private String fileName3 = "test3.txt" ;
2332 private String fileName4 = "test4.txt" ;
2433 private String fileName5 = "test5.txt" ;
2534
@@ -35,12 +44,36 @@ protected void tearDown() throws Exception {
3544 super .tearDown ();
3645 }
3746
47+
48+ public void whenWriteStringUsingBufferedWritter_thenCorrect () throws IOException {
49+ String str = "Hello" ;
50+ BufferedWriter writer = new BufferedWriter (new FileWriter (fileName3 ));
51+ writer .write (str );
52+ writer .close ();
53+ }
54+
55+ public void whenAppendStringUsingBufferedWritter_thenOldContentShouldExistToo () throws IOException {
56+ String str = "World" ;
57+ BufferedWriter writer = new BufferedWriter (new FileWriter (fileName3 , true ));
58+ writer .append (' ' );
59+ writer .append (str );
60+ writer .close ();
61+ }
62+
3863 public void whenWriteFormattedStringUsingPrintWriter_thenOutputShouldBeFormatted () throws IOException {
3964 FileWriter fileWriter = new FileWriter (fileName );
4065 PrintWriter printWriter = new PrintWriter (fileWriter );
4166 printWriter .printf ("Product name is %s and its price is %d $" ,"iPhone" ,1000 );
4267 printWriter .close ();
4368 }
69+
70+ public void whenWriteStringUsingFileOutputStream_thenCorrect () throws IOException {
71+ String str = "Hello" ;
72+ FileOutputStream outputStream = new FileOutputStream (fileName3 );
73+ byte [] strToBytes = str .getBytes ();
74+ outputStream .write (strToBytes );
75+ outputStream .close ();
76+ }
4477
4578 public void whenWriteStringWithDataOutputStream_thenReadShouldBeTheSame () throws IOException {
4679 String value = "Hello" ;
@@ -106,6 +139,30 @@ public void whenWriteStringUsingFileChannel_thenReadShouldBeTheSame() throws IOE
106139
107140 }
108141
142+ public void whenWriteToTmpFile_thenCorrect () throws IOException {
143+ String toWrite = "Hello" ;
144+ File tmpFile = File .createTempFile ("test" , ".tmp" );
145+ FileWriter writer = new FileWriter (tmpFile );
146+ writer .write (toWrite );
147+ writer .close ();
148+
149+ BufferedReader reader = new BufferedReader (new FileReader (tmpFile ));
150+ assertEquals (toWrite , reader .readLine ());
151+ reader .close ();
152+ }
153+
154+ public void whenWriteUsingJava7_thenCorrect () throws IOException {
155+ String str = "Hello" ;
156+
157+ Path path = Paths .get (fileName3 );
158+ byte [] strToBytes = str .getBytes ();
159+
160+ Files .write (path , strToBytes );
161+
162+ String read = Files .readAllLines (path ).get (0 );
163+ assertEquals (str , read );
164+ }
165+
109166 // use RandomAccessFile to write data at specific position in the file
110167 public void testWriteToPosition (int data , long position ) {
111168 try {
0 commit comments