Rational Developer for System z, version 7.6

Extraction d'un contenu de fichier

Cet exemple montre comment récupérer le contenu d'un fichier (membre d'un fichier ou fichier séquentiel) sur le système de fichiers MVS.

Exemple de scénario

Pour récupérer le contenu de la ressource, vérifiez que cette dernière est sélectionnée dans le navigateur, puis choisissez l'action Exemples d'API > Obtenir le contenu du fichier.

graphique getContentsMenu

Le contenu du fichier s'affiche dans la sortie standard associée au plan de travail. Vous pouvez la trouver dans la fenêtre DOS à partir de laquelle a été lancé le plan de travail ou dans la vue Console du plan de travail d'hébergement dans le cas du plan de travail d'exécution.

Remarque : Il est possible que la sortie standard correspondant à un plan de travail démarré avec l'icône Eclipse standard ne soit pas visible.

graphique getContentsResults

Exemple de structure de code

Vous pouvez trouver le code source complet dans GetContentsAction.java.

Lecture à partir de l'artefact distant

Le fragment de code suivant provenant de la méthode run de la classe GetContentsAction montre comment obtenir le contenu d'un fichier MVS (membre PDS ou fichier séquentiel). Le code est différent pour un fichierIPhysicalFile ou ILogicalFile, mais le flux global reste identique pour les deux. Le code permet d'abord d'appeler la méthode getContents pour obtenir un InputStream. Dès que vous avez récupéré un flux InputStream, vous pouvez appeler les méthodes Java™ standard comme read pour récupérer le contenu du fichier.

 InputStream is = null;
	if (selectedItem instanceof ILogicalFile) {
		// Project proxy for resource
		ILogicalFile file = (ILogicalFile) selectedItem;
		filename = file.getName();
		is = file.getContents(); 
	} else if (selectedItem instanceof IPhysicalFile) {
		// Physical Resource
		IPhysicalFile file = (IPhysicalFile) selectedItem;
		filename = file.getName();
		is = file.getContents();
	}
	int ch = is.read();
	while (ch != -1) {
		System.out.write(ch);
		ch = is.read();
	}

Gestion d'événements de changement de sélection

Cet exemple explique également comment réagir devant des événements de changement de sélection dans Eclipse. La classe GetContentsAction implémente l'interface ISelectionListener. L'implémentation de sa méthode selectionChanged réagit face aux événements faisant référence à une sélection IStructuredSelection, causée généralement par une modification de la sélection courante dans un navigateur. Le code de l'exemple lance une itération dans les éléments de la sélection courante à l'aide d'un itérateur associé, en ajoutant chaque élément dans une liste.

 public void selectionChanged(IAction action, ISelection selection) {
		fTargetList = null;
		if (selection instanceof IStructuredSelection) {
			fTargetList = new ArrayList();
			IStructuredSelection selections = (IStructuredSelection)
				selection;
			for (Iterator e = selections.iterator(); e.hasNext();) {
				Object next = e.next();
				fTargetList.add(next);
			}
		}
	}

Conditions d'utilisation | Commentaires

Ce centre de documentation utilise la technologie Eclipse. (http://www.eclipse.org)