Działania na plikach

Działania na plikach

Program: wykonujący działania na plikach tekstowych. (które zapisywane są (tworzone lub odczytywane) na karcie pamięci w telefonie)

Możliwe działania po wcześniejszym wybraniu nazwy pliku oraz wpisaniu zawartości to:

  • nadpisanie zawartości (zamiana),
  • dopisanie zawartości (dołączenie),
  • wyświetlenie zawartości pierwszej linijki pliku.

Zawartość wyjściowa pliku 3:
12qwe

Zawartość wyjściowa pliku 4:
qweqwe

Kompilator: Eclipse

Film:

Kod programu:

Działania na plikach – backend:

package com.example.project_7;

import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		Button bDopisz=(Button)findViewById(R.id.buttonDopisz);
		Button bNadpisz=(Button)findViewById(R.id.buttonNadpisz);
		Button bWyswietl=(Button)findViewById(R.id.buttonWyswietl);	
		final EditText eNazwaPliku=(EditText)findViewById(R.id.editTextNazwaPliku);
		final EditText eZawartosc=(EditText)findViewById(R.id.editTextZawartosc);
		
		bWyswietl.setOnClickListener(new OnClickListener() {		
			@Override
			public void onClick(View v) {
				String nazwa_pliku=eNazwaPliku.getText().toString();
				try {
					FileInputStream plik1=openFileInput(nazwa_pliku);
					DataInputStream dataIO=new DataInputStream(plik1);
					String odczyt;
					odczyt=dataIO.readLine();
					Toast.makeText(getApplicationContext(), odczyt, Toast.LENGTH_LONG).show();
					plik1.close();
				} catch (FileNotFoundException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}		
			}
		});
		
		bNadpisz.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				FileOutputStream plik;
				String zawartosc=eZawartosc.getText().toString();
				String nazwa_pliku=eNazwaPliku.getText().toString();
				try {
					plik=openFileOutput(nazwa_pliku,MODE_PRIVATE);
					plik.write(zawartosc.getBytes());
					plik.close();
				} catch (FileNotFoundException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		});
		
		bDopisz.setOnClickListener(new OnClickListener() {	
			@Override
			public void onClick(View v) {
				FileOutputStream plik;
				String zawartosc=eZawartosc.getText().toString();
				String nazwa_pliku=eNazwaPliku.getText().toString();
				try {
					plik=openFileOutput(nazwa_pliku,MODE_APPEND);
					plik.write(zawartosc.getBytes());
					plik.close();
				} catch (FileNotFoundException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		});						
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
}

Layout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/editTextNazwaPliku"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="21dp"
        android:ems="10"
        android:hint="@string/nazwa_pliku" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/buttonWyswietl"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editTextZawartosc"
        android:layout_below="@+id/editTextNazwaPliku"
        android:layout_marginTop="55dp"
        android:text="@string/wys_1_linie" />

    <Button
        android:id="@+id/buttonNadpisz"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editTextZawartosc"
        android:layout_below="@+id/buttonWyswietl"
        android:text="@string/nadpisz" />

    <Button
        android:id="@+id/buttonDopisz"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editTextZawartosc"
        android:layout_below="@+id/buttonNadpisz"
        android:text="@string/dopisz" />

    <EditText
        android:id="@+id/editTextZawartosc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editTextNazwaPliku"
        android:layout_below="@+id/editTextNazwaPliku"
        android:ems="10"
        android:hint="@string/zawartosc" />

</RelativeLayout>